burada kod benim çizgidir ve bu normaldir HttpConext.Current
HttpContext, WCF hizmetinde null?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
burada kod benim çizgidir ve bu normaldir HttpConext.Current
HttpContext, WCF hizmetinde null?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
bana hata atar. WCF web hizmetinde HTTP Bağlamı yoktur. Bir WCF servisi bir web sunucusunda bile barındırılamayabilir. Bir konsol uygulamasında ev sahibi olabilirsiniz. Orada ASP.NET Compatibility Mode ayarlanmasına imkan veren bir hüner:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
ama Yaptığın öneriyoruz şey değildir.
var postData = "username=" + HttpUtility.UrlEncode(USERNAME);
Ve senin bu kodla nereye hakkında 7 duygusu var çünkü (bir uzak web sunucusuna bir HTTP isteği olarak göndermeden) en düz dönelim:
yerine yapardı nokta: HttpContext etkinleştirmek istiyorsanız
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "username", USERNAME }
};
var result = client.UploadValues("http://foo.com", values);
}
Bu servisi yerel makinemde test ediyorum yol yok mu? –
@Abu Hamzah, önemli değil, WCF servisi içinde HttpContext lütfen. Wcf'nin her zaman bir web sunucusunda olmadığını hatırlatmak için –
+1 – Michel
web config aspNetCompatibilityEnabled
bayrağı ayarlayabilirsiniz.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Bu kod nereye yerleştirilir? bir WCF Hizmet Verileri Sözleşmesi içinde? –
wcf service.svc.cs içine yerleştirilen kod –