这里是我的代码行,并抛出了我的错误就HttpConext.Current
WCF服务中的HttpContext null?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
这里是我的代码行,并抛出了我的错误就HttpConext.Current
WCF服务中的HttpContext null?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
这是正常的。 WCF Web服务中没有HTTP上下文。 WCF服务甚至可能不在Web服务器中托管。您可以在控制台应用程序中进行托管。有一个窍门,可以让你设置ASP.NET Compatibility Mode:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
但它不是东西,我会建议你做的事情。
我会做这个:
var postData = "username=" + HttpUtility.UrlEncode(USERNAME);
而且因为我有你在哪里与此代码去第7感(它发送一个HTTP请求发送到远程服务器上),让我们直接去了点:
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "username", USERNAME }
};
var result = client.UploadValues("http://foo.com", values);
}
我在本地机器上测试此服务是否没有办法? – 2011-03-04 14:13:31
@Abu Hamzah,没关系,请WCF服务里面没有HttpContext。 – 2011-03-04 14:16:09
+1提醒,wcf并不总是在网络服务器上 – Michel 2011-03-04 14:35:45
如果要启用的HttpContext可以设置在web配置的aspNetCompatibilityEnabled
标志。
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
此代码位于何处?在WCF服务数据合同中? – 2011-03-04 14:13:03
将代码放置在wcf service.svc.cs中 – 2011-03-04 14:17:09