我正在开发一个C#应用程序,它使用.Net System.Net.WebRequest通过php与MySQL服务器通信。它工作正常,直到我将我的网络托管服务切换到BlueHost。我的应用程序不再有效,相反,我收到错误消息“WebException:远程服务器返回错误:(503)服务不可用。”。我联系了BlueHost技术支持,并被告知他们不支持C#。
我不知道Web服务器必须“支持”System.Net.WebRequest?!我很困惑。我可能会切换回旧的托管服务,但我想了解更多有关此问题的信息。
有人可以为了安心而向我解释这个吗?非常感谢!
杰森
答案 0 :(得分:0)
如果您能够使用网络浏览器访问您的PHP网络应用程序 - 那么您应该能够通过C#应用程序发出网络请求。
您可以尝试从WebException中读取Response属性 - 它可能会为您提供有关出错的更多信息。有关如何执行此操作的示例,请参阅此答案https://stackoverflow.com/a/10107490/138392。
此外,您的C#应用程序是否位于Web代理后面?有关强制HttpWebRequest使用默认代理设置的方法,请参阅https://stackoverflow.com/a/18013509/138392。
另外,您是否尝试过设置WebRequest的UserAgent属性?尝试:
request.UserAgent = @"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)";
就个人而言,我更喜欢在发出Web请求时使用WebClient或HttpClient类,因为许多样板代码都被抽象掉了。在使用Web API时,RestSharp库也非常有用。