我使用 c# 4.0 版开发了一个 Web 服务(ASMX)。它只会将文件上传到我们的网络服务器。部署 Web 服务后,我使用 .net v4.0 创建了一个 win 表单项目,并在那里创建了我的 Web 服务的代理。之后我测试了文件上传过程,发现它正在工作。当我使用 .net v2.0 创建一个 win 表单应用程序时,问题就开始了,当我在那里创建一个具有相同 Web 服务的代理时,我看到创建的代理没有 Reference.cs 文件。这就是为什么我无法调用该 Web 服务的原因。当我尝试使用 dotnet 2.0 版创建代理时,我无法理解为什么没有创建 Reference.cs 文件。
所以告诉我是否存在特定于版本的问题。我猜出现问题是因为我在 dotnet v4.0 上开发此 Web 服务并在 dotnet v2.0 上创建代理。请解释为什么没有创建 Reference.cs 文件。也指导我如何解决这个问题。
我在这里发布我的网络服务代码。看看,告诉我有什么问题。
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class FileUploader : System.Web.Services.WebService
{
[WebMethod]
public string UploadFile(byte[] f, string fileName)
{
// the byte array argument contains the content of the file
// the string argument contains the name and extension
// of the file passed in the byte array
string uploadFolder = HttpContext.Current.Request.PhysicalApplicationPath + @"UPS_New\LabelImages\" + fileName;
try
{
// instance a memory stream and pass the
// byte array to its constructor
MemoryStream ms = new MemoryStream(f);
// instance a filestream pointing to the
// storage folder, use the original file name
// to name the resulting file
FileStream fs = new FileStream(uploadFolder, FileMode.Create);
// write the memory stream containing the original
// file as a byte array to the filestream
ms.WriteTo(fs);
// clean up
ms.Close();
fs.Close();
fs.Dispose();
// return OK if we made it this far
return "OK";
}
catch (Exception ex)
{
// return the error message if the operation fails
return ex.Message.ToString();
}
}
}
请指导我...我正在寻找建议。谢谢