Tag: iis 7

网站要求MVC控制器上的“需要身份validation”,而不是其他人

我有一个asp.net C#MVC网站。 它使用SimpleAuthentication和表单身份validation。 一切正常,要求人们登录进入页面。 但是,我有一个名为“ReportsController”的控制器。 每当您转到此控制器中的操作的URL时,它总是会在浏览器窗口中弹出“需要validation”。 它只是为这个控制器而不是任何其他控制器。 该url为“www.domain.com/reports”。 当我从IIS和我的开发服务器运行时,此URL工作正常,但不在我的实时服务器上运行。 这是运行IIS7。 我已经检查了我的web.config,它肯定是设置为Forms身份validation而不是Windows。 任何人都有任何想法为什么任何以“/ Reports”开头的url都不起作用。 我猜它是服务器特有的东西,比如IIS设置或web.config更改,但我无法弄清楚它会是什么。 namespace ProjectName.Controllers { public class ReportsController : Controller { public ActionResult Index() { throw new SystemException(“here”); return View(); } } } Web.config文件:

IIS 7托管模块无法获取Content-Length或发送的字节数

我有一个IIS 6的ISAPIfilter,它使用响应的字节发送字段进行一些自定义处理。 我想为IIS 7更新它,但我遇到了一个问题。 IIS 7事件似乎都没有访问内容长度,发送的字节数或任何可以让我计算发送的内容长度或字节数的数据。 (我知道内容长度标头和发送的字节不一样,但两者都可以用于此目的。) 据我所知,在托管模块完成执行后,HTTP.SYS添加了内容长度标头。 现在我有一个在EndRequest上运行的事件处理程序。 如果我可以得到输出流,我可以计算出我自己需要的东西,但托管管道似乎也无法访问。 是否有某种方法可以获取托管管道中发送的内容长度或字节数? 如果失败了,我是否可以通过某种方式计算托管管道中可用对象发送的内容长度或字节数?

当WCF服务运行批处理文件时,XCopy或MOVE不起作用。 为什么?

我遇到过这样一种情况,即同一批处理文件与命令行的工作方式不同,以及何时从IIS上托管的WCF服务触发。 区别在于XCOPY命令。 当我正常运行批处理文件时,XCOPY会移动我需要的所有数据 XCOPY “C:\from” “C:\to” /K /R /E /I /S /C /H /G /X /Y 但是当它从WCF服务运行时,不会复制任何内容。 从我的服务运行批处理我使用以下代码在C#中执行批处理文件稍作修改。 我的应用程序拉动在LocalSystem帐户下运行。 我还尝试使用自己的帐户进行应用程序调查 – 不起作用。 怎么了? 简短更新:我最近学到的是我的WCF服务在App Pool User下运行,但过程不是。 为了实验,我在流程开始代码中进行了更新 var pwdArray = “mypassword”.ToArray(); var pwd = new System.Security.SecureString(); Array.ForEach(pwdArray, pwd.AppendChar); processInfo.UserName = “myuser”; processInfo.Password = pwd; processInfo.Domain = “LocalMachine”; 但它没有帮助。 似乎在描述的条件下运行XCOPY是神秘的。 还有一个更新:在常规Windows服务下启动的进程中也发现了与XCopy相同的问题。

如何在IIS 7中设置ASP.NET MVC 3子应用程序?

我尝试在IIS 7上设置MVC 3 sup应用程序.Root app也是一个MVC 3应用程序。 所以,我的root应用程序在www.mysite.com上运行 – 子应用程序必须是www.myapp.com/subapp 我认为问题出在web.config中…

在asp.net中关闭Global.asax中的文件/文件夹更改

防病毒扫描.Net部署的文件夹。 因此,应用程序会经常为客户注销。 需要大量批准才能在项目的文件夹级别获得豁免。 所以,我使用下面的代码: //FIX disable AppDomain restart when deleting subdirectory //This code will turn off monitoring from the root website directory. //Monitoring of Bin, App_Themes and other folders will still be operational, so updated DLLs will still auto deploy. System.Reflection.PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty(“FileChangesMonitor”, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); object o = p.GetValue(null, null); System.Reflection.FieldInfo […]

如何将SubDomain映射到子文件夹而不在IIS中创建其他网站?

嗨,我正在为我的博客使用BlogEngine.net,我想创建5个不同的子域并指向不同的子文件夹(不重定向)。 例如: firstsubdomain.domain.com – domain.com/posts/helloworld.aspx firstsubdomain2.domain.com – domain.com/posts/helloworld2.aspx firstsubdomain3.domain.com – domain.com/posts/helloworld3.aspx 提前感谢您的工作示例。 我正在使用asp.net 3.5,C#,Windows Server 2008,IIS 7 只是想确保在IIS解决方案中创建其他网站对我不起作用。

url重写为aspx页面

我有一个名为foo.aspx的页面,id喜欢将url重写为bar.something 这该怎么做? 如何在asp.net中重写URL重写 我应该创建一个通用处理程序? 或者我应该获得一些url重写模块并添加到应用程序?

ASP.Net MVC DllImport BadImageFormatException 32bit / 64bit

我有下面的代码抛出BadImageFormatException 。 它加载的DLL是32位。 Web服务器正在运行Windows 64位,但应用程序池设置为启用32位。 有什么方法可以让这个工作吗? public class HomeController : Controller { [DllImport(“CDCrypt.dll”)] [return: MarshalAs(UnmanagedType.LPStr)] public static extern String Encrypt ([MarshalAs(UnmanagedType.LPStr)] String aName); [DllImport(“CDCrypt.dll”)] [return: MarshalAs(UnmanagedType.LPStr)] public static extern String Decrypt ([MarshalAs(UnmanagedType.LPStr)] String aName); public ActionResult Index() { try { ViewBag.EncryptString = Encrypt(“test”); } catch (Exception e) { ViewBag.EncryptString = “Stack Trace\r\n:” + “\r\nException: ” […]

IIS应用程序上的ProtectedData.Unprotect – 在IISRESET之后无法工作

我需要从本地数据库存储和检索敏感数据 – 这些数据由Web应用程序使用。 为了保护所述数据,我选择使用ProtectedData类。 IIS应用程序正在使用特定的AD用户(“高级设置”中的“标识”属性)运行。 一切正常,直到我执行IISRESET – 此时,似乎为ProtectedData类的目的更改了标识,并且我留下了无法解密的数据 – 我得到的Key not valid for use in specified stateexception。 这是我正在使用的代码: static public string Encrypt(string data) { var encryptedData = ProtectedData.Protect(System.Text.Encoding.UTF8.GetBytes(data), entropy, DataProtectionScope.CurrentUser); return Convert.ToBase64String(encryptedData); } static public string Decrypt(string base64string) { var encryptedData = Convert.FromBase64String(base64string); return System.Text.Encoding.UTF8.GetString(ProtectedData.Unprotect(encryptedData, entropy, DataProtectionScope.CurrentUser)); } 对我的应用来说, entropy显然是静态的。 这是怎么回事? 我的印象是DataProtectionScope.CurrentUser将使用,顾名思义,当前用户 – 据我所知,应该是应用程序池标识。 当我执行IISRESET时,为什么它会被改变?

Web窗体中的IRouteHandler:需要HttpContext.User的路由请求

我正在尝试为Asp.Net Web Forms应用程序添加一个非常基本的路径(在IIS 7下运行,集成模式):对于来到http://mydomain.com/foo/的请求,我想显示结果一个动态页面( http://mydomain.com/foopage.aspx )。 我已经创建了一个RouteHandler来完成所有这些并且它似乎正确地路由。 public IHttpHandler GetHttpHandler(RequestContext requestContext) { var page = System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(“~/foo.aspx”, typeof(MyApp.Web.Foo)) as MyApp.Web.Foo; return page as IHttpHandler; } 问题是,在我的RouteHandler的GetHttpHandler方法中,当前用户的所有实例(requestContext.HttpContext.User,System.Web.HttpContext.Current.User)都为null。 遗憾的是,foo.aspx需要知道当前用户是什么(对于登录控件,角色等),因此呈现页面会抛出空引用exception。 我的猜测是,在Asp.Net获得用户信息连接HttpContext的机会之前,这些路由处理程序正在启动。 任何解决方法的想法? PS – 我意识到这可以通过在http://mydomain.com/foo/default.aspx页面中执行Server.Transfer来实现。 我想使用路由来处理这类事情,而不是让一堆无用的文件夹混乱。 谢谢!