我有网络服务:
using System.Web.Services;
namespace Contracts
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Second : System.Web.Services.WebService
{
[WebMethod]
public string GetContract()
{
return "Contract 1";
}
}
}
以下WPF应用程序可以显示HTML 罚款:
using System.Windows;
using System.Net;
using System;
namespace TestConsume2343
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
WebClient proxy = new WebClient();
proxy.DownloadStringCompleted += new DownloadStringCompletedEventHandler(proxy_DownloadStringCompleted);
proxy.DownloadStringAsync(new Uri("http://localhost:57379/Second.asmx?op=GetContract"));
Message.Text = "loading...";
}
void proxy_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
Message.Text = e.Result.ToString();
}
}
}
但是当我用实际网络服务替换上述行时:
proxy.DownloadStringAsync(new Uri("http://localhost:57379/Second.asmx/GetContract"));
它为我提供了错误消息:
远程服务器返回错误(500)内部服务器错误。
虽然当我在浏览器中查看相同的网址时,我看到XML文字很好:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Contract 1</string>
为什么它会给我500错误?
答案 0 :(得分:1)
返回HTTP代码500的服务通常意味着在请求处理期间存在异常。如果您将调试器连接到Web服务器并正确配置,它将在异常时中断,您将能够看到它。通常,异常文本也应包含在HTTP响应的正文中
答案 1 :(得分:1)
打开跟踪并登录您的WCF服务,以查看异常是什么(MSDN link),或者如上所述,在每个异常上附加调试器。