为什么我的网络服务给我一个错误500?

时间:2009-11-03 12:58:14

标签: c# web-services

我有网络服务

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错误?

2 个答案:

答案 0 :(得分:1)

返回HTTP代码500的服务通常意味着在请求处理期间存在异常。如果您将调试器连接到Web服务器并正确配置,它将在异常时中断,您将能够看到它。通常,异常文本也应包含在HTTP响应的正文中

答案 1 :(得分:1)

打开跟踪并登录您的WCF服务,以查看异常是什么(MSDN link),或者如上所述,在每个异常上附加调试器。