在IIS 8中托管后,WebAPI不会从WebService调用

时间:2016-01-06 07:33:07

标签: c# web-services asp.net-web-api httpclient iis-8

我需要通过WebAPI将短信发送到特定的电话号码。因此,我开发了一个Web服务来调用WebAPI并在我的本地PC中托管在IIS 8(Windows 8.1)中。但问题是,当我使用Visual Studio 2015(.NET Framework 4.5.2)运行Web服务并调用Web服务时,它会调用WebAPI并将短信发送到手机,作为回报,WebAPI会发送xml数据。但是,当我在我的PC中托管IIS 8中的Web服务时,Web服务无法调用WebAPI,因此无法发送短信。

Web服务代码和错误消息如下所示。

网络服务

[WebMethod(Description = "Send SMS (Param: =)")]
[ScriptMethod(UseHttpGet = true)]
public string SendSmsParam(string url)
{
    try
    {
        string[] param = url.Split('=');
        string userName = param[0];
        string password = param[1];
        string fromMobileNo = param[2];
        string to = param[3];
        string message = param[4];
        HttpResponseMessage response = new HttpClient().GetAsync("https://abc.xyz.com.bd/ApacheGearWS/SendTextMessage?Username=" + userName + "&Password=" + password + "&From=" + fromMobileNo + "&To=" + to + "&Message=" + message).Result;
        return response.Content.ReadAsStringAsync().Result;
    }
    catch (Exception ex)
    {
        return ex.ToString();
    }
}

网络服务呼叫网址

http://Localip:port/SendSMS.asmx/SendSmsParam?url=userName=password=fromMobileNo=to=message

异常

  

“System.AggregateException:一个或多个   发生了错误。 ---> System.Net.Http.HttpRequestException:An   发送请求时发生错误。 --->   System.Net.WebException:无法解析远程名称:   'abc.xyz.com.bd'在   System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
  在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult)   ar)---内部异常堆栈跟踪结束--- ---内部结束   异常堆栈跟踪--- at   System.Threading.Tasks.Task`1.GetResultCore(布尔   waitCompletionNotification)at   SMSWebService.SendSMS.SendSmsParam(String url)   ---> (内部异常#0)System.Net.Http.HttpRequestException:发送请求时发生错误。 --->   System.Net.WebException:无法解析远程名称:   'abc.xyz.com.bd'在   System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
  在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult)   ar)---内部异常堆栈跟踪的结束---< ---“

在办公室,我的电脑网络是通过DNS和代理配置的。

我的问题是,为什么在IIS 8中托管webservice时无法发送短信,当使用VS 2015运行webserivce时,可以通过webservice和WebAPI发送短信?

还有一件事是,如果我将我的电脑连接到另一个网络(不是办公室网络),假设任何其他私人ISP或任何3G / 4G无线网络,我可以通过调用托管的Web服务发送短信。但正如我已经说过,如果我使用visual studio运行Web服务,我可以通过将我的电脑连接到我的办公室网络来发送短信。问题在哪里以及如何解决?

0 个答案:

没有答案