上载文件的C#Web服务出现内部服务器错误
我有一个用C#编写的Web服务应用程序。我希望它能够处理一个基本的请求,即从表单中获取文件名和文件内容,并将其保存到Web服务的工作目录中。 代码是:上载文件的C#Web服务出现内部服务器错误,c#,asp.net,web-services,internal-server-error,C#,Asp.net,Web Services,Internal Server Error,我有一个用C#编写的Web服务应用程序。我希望它能够处理一个基本的请求,即从表单中获取文件名和文件内容,并将其保存到Web服务的工作目录中。 代码是: [WebMethod] public void PutFile(byte[] buffer, string filename) { BinaryWriter binWriter = new BinaryWriter(File.Open(Server.MapPath(filename), FileMode.Creat
[WebMethod]
public void PutFile(byte[] buffer, string filename)
{
BinaryWriter binWriter = new BinaryWriter(File.Open(Server.MapPath(filename), FileMode.CreateNew, FileAccess.ReadWrite));
binWriter.Write(buffer);
binWriter.Close();
}
当我通过在.asmx文件的目录中运行xsp来调用它时,我可以使用其他Web服务,例如添加两个数字等。然而,当我调用PutFile方法时,我得到以下错误
500-内部服务器错误
System.ArgumentException:WebChangeTypeFailed
参数名称:type-->System.FormatException:输入字符串的格式不正确
并遵循一些函数错误
我是使用.NET开发Web服务应用程序的新手,我不确定这个问题的原因。我看过web.config文件,并没有注意到一些奇怪的东西。web.config文件为:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation defaultLanguage="C#" debug="true">
<assemblies>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
</compilation>
<customErrors mode="RemoteOnly">
</customErrors>
<authentication mode="None">
</authentication>
<authorization>
<allow users="*" />
</authorization>
<httpHandlers>
</httpHandlers>
<trace enabled="false" localOnly="true" pageOutput="false" requestLimit="10" traceMode="SortByTime" />
<sessionState mode="InProc" cookieless="false" timeout="20" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
<pages>
</pages>
</system.web>
</configuration>
有人能帮忙吗?谢谢。您的应用程序是否具有该目录的写入权限?@S.Petrosov是的。但我不认为这是原因。因为当我简单地返回时,它会给出错误,而不执行语句。我认为这个问题与函数参数有关。如果您有源文件名和行号,则会有所帮助。或者至少调用堆栈的更多部分。运行调试生成并尝试精确定位位置。这个文件有多大?@user3035291你能分享一下这个函数的callI代码吗?我想你需要为web方法设置合适的属性。你可以看看这个: