我已经开发了一个非常小的Web服务,并且与我们的网站一起托管。 我们的网络服务网址是http://www.bba-reman.com/Search/SearchDataIndex.asmx

网络服务代码

namespace WebSearchIndex
{
    #region SearchDataIndex
    /// <summary>
    /// SearchDataIndex is web service which will call function exist in another library for part data indexing
    /// </summary>
    [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 SearchDataIndex : System.Web.Services.WebService
    {
        //public AuthHeader ServiceAuth=null;
        public class AuthHeader : SoapHeader
        {
            public string Username;
            public string Password;
        }

        #region StartIndex
        /// <summary>
        /// this function will invoke CreateIndex function of SiteSearch module to reindex the data
        /// </summary>
        [WebMethod]
        public string StartIndex(AuthHeader auth)
        {
            string strRetVal = "";
            if (auth.Username == "Admin" && auth.Password == "Admin")
            {
                strRetVal = SiteSearch.CreateIndex(false);
            }
            else
            {
                SoapException se = new SoapException("Failed : Invalid credentials", 
                SoapException.ClientFaultCode,Context.Request.Url.AbsoluteUri,new Exception("Invalid credentials"));
                throw se;
            }
            return strRetVal;
        }
        #endregion
    }
    #endregion

}

当我使用HttpWebRequest类从Win应用程序调用该Web服务时,出现错误远程服务器返回错误:(500)Internal Server Error

这是我从中调用网络服务的Win应用程序的代码

    string strXml = "";
    strXml = "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><StartIndex xmlns='http://tempuri.org/' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'><auth><Username>joy</Username><Password>joy</Password></auth></StartIndex></s:Body></s:Envelope>";
    string url = "http://www.bba-reman.com/Search/SearchDataIndex.asmx";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    req.Method = "POST";
    req.ContentType = "text/xml";
    req.KeepAlive = false;
    req.ContentLength = strXml.Length;
    StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
    streamOut.Write(strXml);
    streamOut.Close();
    StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
    string strResponse = streamIn.ReadToEnd();
    streamIn.Close();

我只是不明白这行何时执行StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream()); 然后收到错误远程服务器返回错误:(500)Internal Server Error

无法理解我在哪里犯了错误。 错误是在Web服务端代码中还是在调用代码中?

帮助我解决此问题。 谢谢

#1楼 票数:0 已采纳

好吧,我建议以下内容:-您摆脱了httpwebrequest。

  • 将服务引用添加到您的应用程序,这将生成代理类。

-最后添加以下代码:

ServiceReference1.SearchDataIndexSoapClient Client = new ServiceReference1.SearchDataIndexSoapClient();
        ServiceReference1.AuthHeader authHead = new ServiceReference1.AuthHeader();
        authHead.Password = "Admin";
        authHead.Username = "Admin";

        Client.Endpoint.Binding.SendTimeout= new TimeSpan(0, 5, 00);
        Console.WriteLine(client.StartIndex(authHead));

应该是这样

  ask by Mou translate from so

未解决问题?本站智能推荐:

1回复

远程服务器返回错误:(500)内部服务器错误Web服务

我正在尝试将SOAP XML发送到oracle webservice。 服务参考无法正常运行,因此我决定使用webrequest,但出现错误“远程服务器返回错误:(500)内部服务器错误。”
2回复

Web服务响应返回500内部服务器错误

我已经编写了自己的Web服务,可以独立运行。 我从另一个页面调用此Web服务,当时它返回500 Internal Server错误。 我第一次经历这个过程,不知道这意味着什么或为什么会发生。 在Google上进行的初步搜索显示了广泛的答案,尽管我找不到任何具体的答案。 这是我的通话代码
1回复

调用Web服务时,{“远程服务器返回错误:(500)内部服务器错误。”}

我试图在运行时绑定到Web服务,并调用一个简单的方法来使此代码正常工作,并在尝试从Web服务获取答复时收到上述错误消息。 以下是以下代码,首先是我如何调用服务: 现在用于构建肥皂包和Web请求: SoapEnvelope变量如下所示: 这就是我调用上述调用的方式: 错误在Inv
2回复

远程服务器返回错误:找不到-Silverlight

我有一个由我的Silverlight前端引用的ASMX Web服务,并且最近开始出现错误“远程服务器返回错误:未找到”。 该错误似乎与以下事实有关:我最近在表之间添加了关联(如果我删除了关联,则服务工作正常)。 这似乎与此处报告的错误类似,但是他没有说明如何解决该问题。 我正在将Silve
1回复

调用Sharepoint2010search.asmx时500内部服务器错误

我试图从.NET 4.5中的客户端应用程序调用Sharepoint 2010搜索Web服务,没有问题,我添加了服务引用,我修改了web.config以允许正确的身份验证(NTLM),但是当我调用Query方法时,我得到了500服务器错误,并显示以下消息: 服务器无法处理请求。 --->
8回复

GetResponse()上500内部服务器错误

我有一个繁重的流量aspx页面根据每个用户的请求调用Web服务,如下所示。 一切都很好,但有时我得到以下错误。 远程服务器返回错误:(500)内部服务器错误。 在System.Net.HttpWebRequest.GetResponse() 有没有人对这个错误有任何想法,或者有人告
1回复

Json:远程服务器返回错误(500)内部服务器错误

我正在尝试以Json格式读取Web服务 这是我的代码: 我在这条线上收到错误: JsonUri是: http ://avaris.kwekud.com/api/v1/items/uniqueitem/ ? username=joel&api_key=959dd41efd06b
1回复

服务器返回500内部服务器错误时,是否可以检索消息正文?

我有一个例程,使用HttpWebRequest和WebResponse提交SOAP请求。 如果SOAP请求失败,服务器将发回HTTP / 1.1 500 Internal Server Error。 当我捕获错误时,我还没有找到查看包含错误代码的回复正文的方法。 服务器返回500内部服务