HttpContext.Current.Request.ServerVariables"SERVER_PORT“HttpContext.Current.Request.ServerVariables"SERVER_PORT_SECURE”HttpContext.Current.Request.ServerVariables"SERVER_NAME“HttpContext.Current.Request.ApplicationPath
我想通过webservice -C#访问这些值,每当我在webservice中调用这些值时,上面的所有内容都会得到null,而上面的方法适用于网页(aspx)。
发布于 2010-11-23 07:04:20
正如其他人所提到的,您需要启用ASP.NET兼容性。如果你不想通过如下属性限制你的代码,你也可以通过配置来启用它:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>Here's a great resource帮助我解释了通过启用兼容模式实现的基本功能和权衡。
发布于 2010-11-23 06:45:11
您使用的是哪种web服务?asmx还是wcf?它们应该可以很好地与asmx服务一起工作,但如果您使用的是WCF,则需要向该方法添加以下属性:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]发布于 2010-11-23 06:54:08
如果是WCF web服务,您可以执行以下操作:
[AspNetCompatibilityRequirementsAttribute(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class FooBar : IFooBar
{
public void DoSomething()
{
HttpContext context = HttpContext.Current;
if (context != null)
{
// Should get here now
}
}
}关键是添加[AspNetCompatibilityRequirementsAttribute(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]。
https://stackoverflow.com/questions/4250831
复制相似问题