Tag: iis

帮助:如何在ASP.NET Development Server上启用Windows身份validation?

我希望你们中的任何人都知道如何解决我们遇到的这个问题。 我们正在尝试通过网络托管WCF服务。 我们设置web.config以使服务需要Windows身份validation。 我们遇到的问题如下: 当我们在常规IIS中托管我们的服务时,该服务运行正常,并且“Windows身份validation”模式没有问题。 但是,当我们尝试从我们的开发人员框中运行它时,我们会收到以下错误:“此服务的安全设置需要Windows身份validation,但不支持承载此服务的IIS应用程序。” 我们的开发人员盒子不是通过常规IIS托管服务,而是通过Visual Studio的APS.NET开发服务器托管服务。 我们尝试进入Web项目属性并说要启用NTLM身份validation,但仍然没有修复它。 有谁知道如何修理它? VS ASP.NET开发服务器甚至支持Windows身份validation吗? 使用Windows身份validation托管服务的唯一选择是使用IIS而忘记ASP.NET Development Server吗? 谢谢查克

ASP.NET应用程序的高内存使用率

我们的一些ASP.Net应用程序存在问题。 我们的一些应用程序从一开始就声称拥有大量内存作为其工作集。 在我们的2个webfarm服务器(每个4GB的RAM)上运行多个应用程序。 我们有一个稳定的环境,大约1.2GB的内存空闲。 然后我们添加一个MVC5 + WebApi v2 +entity framework应用程序,立即声称1 + gb作为工作集内存,而实际上只使用大约300mb。 这导致其他应用程序抱怨没有足够的内存。 我们已经尝试设置虚拟内存限制和私有内存限制,但没有任何效果。 如果我们将其设置为大约500mb,应用程序仍然使用或多或少相同数量的内存(超过500)并且似乎不尊重所设置的限制。 作为参考,我用一个空的MVC5项目(VS2013模板)测试了这个,这已经声称300mb的内存,而只使用大约10mb。 将应用程序设置为32位应用程序似乎对减小工作集的大小有一些影响。 有没有办法减少工作集的大小,或对其大小实施硬性限制? 编辑:如果使用Web Api v2和Entity Framework为项目使用大量内存,我的API控制器如下所示: namespace Foo.Api { public class BarController : ApiController { private FooContext db = new FooContext(); public IQueryable GetBar(string bla) { return db.Bar.Where(f => f.Category.Equals(bla)).OrderBy(f => f.Year); } } 因为他们看了我能找到的大多数教程(包括来自微软的教程)。 由于LINQ延迟加载,因此在此处using不起作用。 如果我在任何地方都添加了ToList(未经测试),它可以工作,但这会产生任何其他影响吗? edit2:如果我这样做的话 namespace […]

Environment.GetEnvironmentVariable将找不到变量值

如果调用是在IIS上托管的webMethod中进行的,那么为什么Environment.GetEnvironmentVariable(“variableName”)不会获得变量值?如果我从同一台机器上的控制台应用程序调用它,它将会起作用? 我在哪里设置这些变量以使IIS Web服务可见? 我应该使用Environment.GetEnvironmentVariable(name, target)的第二个参数来获取它吗? 它实际上非常简单: [WebMethod(Description = “Gets the environment variable value.”)] public string GetEnvironmentVariable() { return Environment.GetEnvironmentVariable(“VARIABLE_NAME_HERE”); } 顺便说一句,VARIABLE_NAME_HERE设置在系统和用户级别。

是否可以在IIS HttpModule中修改HttpRequest POST的内容?

我需要在IIS中修改某些HttpRequests(SSAS连接字符串)的内容。 基本上,我需要向请求中包含的SOAP添加一个元素。 到目前为止,我的方法是向HttpRequest添加一个Filter,并在filter的Read方法中执行更改。 据我所知,Read永远不会被执行。 我对Request.Filter的理解是它从IIS处理请求时读取,因此IIS应该看到我修改过的Request。 我正在尝试使用HttpModule实际可行,并且我的Filter方法是否正确? 如果是这样,什么会导致Read不被击中? 这是我的代码的简化版本: public class CustomHttpModule : IHttpModule { private HttpApplication app; public string ModuleName { get { return “CustomHttpModule”; } } public void Init(HttpApplication context) { app = context; context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute); } void context_PreRequestHandlerExecute(object sender, EventArgs e) { var request = app.Context.Request; request.Filter = new CustomHttpFilter(request.Filter); } […]

IIS在第一个请求中对URL中的双重编码正斜杠的处理方式与后续请求的处理方式不同

最近,我的团队被要求为ASP.NET MVC应用程序实现HttpModule,该应用程序处理IIS 7和.NET 3.5上的双重编码URL。 这是问题的症结所在: 我们有时会获得具有双重编码正斜杠的URL,如下所示: http://www.example.com/%252fbar%5cbaz/foo 还有其他格式我们必须处理,但它们都有一些共同点,它们有一个双重编码的正斜杠。 为了解决这个问题,我们编写了一个HttpModule,它仅在URL具有双重编码的正斜杠时起作用,并且我们将其重定向到一个合理的URL。 细节并不重要,但有两个位: 我们无法控制这些URL具有双重编码正斜杠的事实 我们还没有对.NET 4.0进行过分析,也没有立即开始。 这是问题所在: IIS启动后的第一个请求显示的URL与第二个请求不同。 如果我们使用上面示例中的URL,则对IIS的第一个请求如下所示: http://www.example.com/bar/baz/foo 第二个请求看起来像: http://www.example.com/%252fbar%5cbaz/foo 这是通过在调试时检查Application.Request.Url.AbsolutePath属性来完成的。 这是应该重现问题的最小代码示例(创建一个新的MVC应用程序,并注册以下HttpModule): public class ForwardSlashHttpModule : IHttpModule { internal IHttpApplication Application { get; set; } public void Dispose() { Application = null; } public void Init(HttpApplication context) { Initialize(new HttpApplicationAdapter(context)); } internal void Initialize(IHttpApplication context) { […]

Swashbuckle 5找不到我的ApiControllers

我真的需要我的WebAPI 2项目的API文档,我使用了Swashbuckle 5 NuGet包。 开箱即用,我可以点击{myrooturl} / swagger并弹出一个UI,但那里没有控制器,方法或任何东西。 只是我的标题:[base url:/EM.Services,api version:v1] 我看了一下Swashbuckle文档,因为我正在使用由IIS托管的OWIN,所以我修改了SwaggerConfig: c.RootUrl(req => req.RequestUri.GetLeftPart(UriPartial.Authority) + req.GetRequestContext().VirtualPathRoot.TrimEnd(‘/’)); 按照这个文件: https : //github.com/domaindrivendev/Swashbuckle/blob/1326e753ce9b3a823b3c156b0b601134692ffc58/README.md#transitioning-to-swashbuckle-50 我还设置了项目的构建以生成XML文档,并将我的SwaggerConfig指向它: private static string GetXmlCommentsPath() { // tried with an without the \bin return String.Format(@”{0}\bin\EM.Services.XML”, AppDomain.CurrentDomain.BaseDirectory); } 我不确定XML文档的工作/不工作是否与它有关,因为我在swagger-ui页面上完全没有控制器。 值得一提的是,我的所有控制器都inheritance自BaseController,而BaseController又inheritance自ApiController。 我的WebApiConfig有什么东西搞砸了吗? public static void Register(HttpConfiguration config) { config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); config.Filters.Add(new ValidateModelAttribute()); config.Filters.Add(new BaseAuthenticationAttribute()); config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( […]

在ASP.NET中使用Windows身份validation

我正在尝试在ASP.NET应用程序中使用Windows身份validation。 每当我尝试查看应用程序时,它都会将我发送到登录页面。 如何在不通过浏览器手动登录的情况下使其工作? web.config中 更新IIS Express后出错 Most likely causes: No authentication protocol (including anonymous) is selected in IIS. Only integrated authentication is enabled, and a client browser was used that does not support integrated authentication. Integrated authentication is enabled and the request was sent through a proxy that changed the authentication headers before they reach […]

我可以运行ASPX并在不发出HTTP请求的情况下grep结果吗?

我怎样才能在没有URL和没有HTTP的情况下对一个简单的ASP.NET文件进行函数调用,并捕获它生成的字节流? 更多背景资料, 我需要一种模板可以在里面放一点逻辑,来渲染一些像文本文件一样的INI。 我放弃了从Java移植的库,并提出了使用ASP.NET作为模板引擎的解决方案。 (我不是用它来构建一个网站,甚至不是HTML。) 我编写了一个ASP.NET页面(没有WebForm,没有MVC),它接受XML POST,并根据一组简单但不太简单的规则生成一个长文本文件。 我从DB对象生成XML,提交到ASP页面,grep结果,它工作得很好。 但是,问题是我们想要用作WCF使用的库。 因此,我没有使用相对路径,我必须在配置中的某处存储ASP的URL,这是我不想要的。 它将托管在IIS服务器上,但不会从任何前端ASP调用(至少不是直接),并且永远不会从最终用户调用。 PS。 我原本是在为C#寻找一个简单的模板引擎,但它们太旧了,不再需要维护,文档很差,缺少集成的编辑器/调试器,太简单了,而且它们可能会说不同的语言。 PPS。 我也考虑过T4,但它在VS 2008中没有编辑器和调试器。

从代码C#更改Web.Config中的URL重写规则

我想修改C#代码中的重写规则。 Url重写规则位于web.config文件中。 我想改变前。 to , 如何找到节点规则并将匹配url更新为“new one”,其中name =“partners”;? 这是我对动态url重写的想法。 感谢您的任何其他方式。

客户端身份validation方案“匿名”禁止HTTP请求。 远程服务器返回错误:(403)禁止

我正在尝试创建一个安全的Web服务。 这是合同和服务实施 [ServiceContract()] public interface ICalculatorService { [OperationContract()] int Add(int x, int y); } [ServiceBehavior(IncludeExceptionDetailInFaults=true)] public class CalculatorService : ICalculatorService { public int Add(int x, int y) { return x + y; } } 这里我有服务代码 var b = new WSHttpBinding(SecurityMode.Transport); b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; b.Security.Message.ClientCredentialType = MessageCredentialType.None; Type contractType = typeof(ICalculatorService); Type implementedContract = typeof(CalculatorService); Uri […]