c# - 如何使用 Web 服务读取文本文件

标签 c# .net web-services

我想创建一个将文本文件作为参数并返回该文件内容的网络服务。

此 Web 服务随后将由 C# 客户端使用。

这是我目前所拥有的(网络服务):

[WebMethod]    
public String txtFile(String filename)
{
   StreamReader sr = File.OpenText(filename);   
   {
      String line = sr.ReadToEnd();
      return line;            
   } 
}

和(客户):

WebService ws = new WebService();
ws.txtFile("textfile.txt");

当我运行客户端时,我得到 UnauthorizedAccessException。

最佳答案

你只发送文件名,那么服务如何通过文件名从服务器检查你的本地文件!

您需要提供文件名的完整路径,例如网络路径或文件服务器路径。并且 Web 服务运行用户应该可以访问该路径。

但如果您更改如下方法并发送带有文件名的文件内容,您可以将其保存到服务器。

[WebMethod]
public void Upload(byte[] contents, string filename)
{
    var appData = Server.MapPath("~/App_Data");
    var file = Path.Combine(appData, Path.GetFileName(filename));
    File.WriteAllBytes(file, contents);
}

关于c# - 如何使用 Web 服务读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175004/

相关文章:

c# - 将 MailMessage 转换为原始文本

.net - WCF HTTPS 证书实现问题

java - Java 中 Web 服务的安全性

java - REST API 调用中的身份验证 header

c# - 在不同的 CPU 优先级上运行我的部分应用程序

c# - 将字符串格式转换为 mm/dd/yyyy 中的日期时间

c# - 如何判断另一个应用程序是否注册了 IPC Remoting channel ?

c# - 适用于 CosmosDb 的 SqlQuerySpec QueryBuilder

c# - 关于套接字编程的 APM、EAP 和 TPL

.net - 使用 Closedxml 库创建受密码保护的 Excel 文件