【发布时间】:2017-09-25 08:05:35
【问题描述】:
我正在尝试做一个小应用程序来测试使用 .net 框架的 Web 服务。 我总是从服务器收到错误 500。
这是我的代码 首先是服务器端代码
public class BalanceInquiry : System.Web.Services.WebService
{
[WebMethod]
public string getAccount(string accNbr)
{
return accNbr;
}
}
这是我的客户端代码:
class Program
{
static void Main(string[] args)
{
//creating object of program class to access methods
Program obj = new Program();
Console.WriteLine("Please Enter Input values..");
//Reading input values from console
string a =(Console.ReadLine());
// int b = Convert.ToInt32(Console.ReadLine());
//Calling InvokeService method
obj.InvokeService(a);
}
public void InvokeService(string a )
{
//Calling CreateSOAPWebRequest method
HttpWebRequest request = CreateSOAPWebRequest();
XmlDocument SOAPReqBody = new XmlDocument();
//SOAP Body Request
SOAPReqBody.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?>
<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
<soap:Body>
<getAccount xmlns=""http://tempuri.org/"">
<accNbr>" + a + @"</accNbr>
</getAccount>
</soap:Body>
</soap:Envelope>");
using (Stream stream = request.GetRequestStream())
{
using (StreamWriter stmw = new StreamWriter(stream))
{
stmw.Write(SOAPReqBody);
}
}
try
{
//Geting response from request
WebResponse response = request.GetResponse();
}
catch (WebException e)
{
Console.WriteLine(e.ToString());
}
Console.Read();
}
public HttpWebRequest CreateSOAPWebRequest()
{
//Making Web Request
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("http://localhost:62325/BalanceInquiry.asmx");
//SOAPAction
Req.Headers.Add("SOAPAction:http://tempuri.org/");
//Content_type
Req.ContentType = "text/xml;charset=\"utf-8\"";
Req.Accept = "text/xml";
//HTTP method
Req.Method = "POST";
//return HttpWebRequest
return Req;
}
}
错误是
System.Net.WebException:远程服务器返回错误:(500)内部服务器错误。 在 System.Net.HttpWebRequest.GetResponse() 在 C:\Users\msaliba\Documents\Visual Studio 2010\Projects\consumeWebSer\consumeWebSer\Program.cs:line 53 中的 consumeWebSer.Program.InvokeService(String a) 处
有没有人知道什么会导致这个错误。它是我的代码中的东西还是可能是其他东西?
【问题讨论】:
-
至于 every 错误 500:检查服务器上的错误详细信息。
-
请将这些错误消息作为文本而不是图像发布,因为这样更容易搜索和复制粘贴。
-
SOAPAction 设置为
Addition,实际的SOAP 主体有HelloWorld作为参数,而服务器方法是getAccount。只要三者不匹配,这将永远无法工作。 -
对不起,我会改变它..但问题仍然存在
-
如何查看服务器上的详细信息?
标签: c# .net web-services asp.net-web-api asmx