Tag: iis

Owin OAuth localhost / Token返回404

首先,当我使用iis express从Visual Studio运行它时,一切正常。 我有一个运行Owin OAuth的Asp.Net Web Api。 这是我的Startup类的配置部分: private static void ConfigureAuth(IAppBuilder app) { var oAuthOptions = new OAuthAuthorizationServerOptions { #if DEBUG AllowInsecureHttp = true, #endif TokenEndpointPath = new PathString(“/Token”), AccessTokenExpireTimeSpan = TimeSpan.FromDays(30), Provider = new ApplicationOAuthProvider() }; app.UseOAuthAuthorizationServer(oAuthOptions); app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()); } 这是我的WebApiConfig.cs的Register部分 public static void Register(HttpConfiguration config) { // Web API configuration and services […]

ASP.Net URL编码

我正在ASP.net中实现URL重写,我的URL导致我的问题世界。 URL是从部门和类别的数据库生成的。 我希望员工能够使用适当的特殊字符向数据库添加项目,而不会破坏站点。 我在构造URL之前编码数据。 有几个问题…… IIS在到达.net之前对URL进行解码,因此无法正确解析其中包含“/”的任何内容。 ASP.net被某些页面中的“〜”无效的url搞糊涂了 我从内置测试服务器迁移到我的本地IIS服务器(XP机器),任何包含编码&(%26)的URL都会给我一个“错误请求”错误。 UrlEncode留下一些破碎的字符,如’。’ 我确实有两个关于这个主题的相关post,当时我只看到小问题不是上游的大问题。 我发现了一些注册表技巧来解决“错误请求”问题,但我将部署到共享托管环境,使其无用。 我也知道这是一个解决某些安全问题的方法所以我不想在不知道我正在打开什么样的蠕虫的情况下绕过它。 而不是试图强制.net传递原始URL,或覆盖IIS设置,我想首先制作真正安全的URL。 我会注意到我已经尝试过AntiXss.URLEncode,HttpUtility.URLEncode,URI.EscapeDataString。 我甚至尝试过双重URLEncodng等愚蠢的事情。 是否有一个实用程序可以满足我的需要,或者我真的需要自己动手。 我甚至考虑做一些Hacky,比如用一些不寻常的字符替换%。 最终结果应至少是可读的,这是首先使用URL重写的重点。 很抱歉很长的post – 我只是想确保我已经包含了所有必要的细节。 我似乎无法找到任何相关信息,这似乎是一个常见的问题 – 所以也许我错过了一些大事。 感谢您的帮助,以及对长篇解释的耐心! 为清晰起见编辑: 当我说从数据库构建url时,我的意思是目录结构是从我的数据库中的部门和类别构建的。 一些示例URLS – 的MyStore /制冷/酒吧+ Fridge.aspx 的MyStore /烹饪+ Equipment.aspx 的MyStore /厨房/切割+ Boards.asxpx 当我使用像“Beverage&Bar”或“Pastry / Decorating”这样的部门来构建我的URL时会出现问题。 尽管首先编码这些导致上述问题。 除了特殊的字符编码问题外,我的处理程序已经实现并且工作正常。

检索具有CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}的组件的COM类工厂失败

我正在创建停止IIS默认网站的应用程序。 我使用PowerShell脚本来停止网站,因为该脚本是从我的网站执行的。 这是我的脚本: Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration Stop-Website ‘Default Web Site’ my copy code Start-Website ‘Default Web Site’ 这是我的C#代码: PowerShell _PowerShell = PowerShell.Create(); Runspace rs = RunspaceFactory.CreateRunspace(); rs.Open(); _PowerShell.Runspace = rs; _PowerShell.AddScript(@”Set-ExecutionPolicy RemoteSigned -scope LocalMachine”).Invoke(); _PowerShell.AddScript(@”E:\DE.TEST\Power_Shell\Scripts\StopIISDefaultSite.ps1″).Invoke(); if (_PowerShell.HadErrors) { Collection errors = _PowerShell.Streams.Error.ReadAll(); foreach (var item in errors) { Console.WriteLine(item.ToString()); } } Console.ReadLine(); 它显示以下错误 检索具有CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}的组件的COM类工厂由于以下错误而失败:80040154未注册类(HRESULTexception:0x80040154(REGDB_E_CLASSNOTREG))。

为什么ASP.NET页面在IE上的呈现速度比Chrome或FF快?

为什么ASP.NET页面在Chrome和FF上渲染时间大约是IE渲染时间的3倍? 这个问题只存在于我的本地计算机上,但是当发布到真实服务器时,会发生完全相反的情况(预期,因为FF和Chrome的性能优于IE)。 我尝试使用FF 3.6,Chrome 9和IE 8的Windows 7 x64和Windows XP x86。 我可以在IIS或Web配置中执行任何操作来修复此行为吗? 编辑 :回应回应: 运行PHP + apache或JSP时,我没有这些问题 在VS中进行调试会话或在IIS上进行部署后,我注意到了这种情况 修改hosts文件确实改善了Chrome和FF响应时间,但仍比IE慢!

如何确定哪些IIS Express实例正在使用端口?

我想以编程方式杀死正在占用特定端口的正在运行的IIS实例,但似乎无法确定哪些IIS实例正在使用特定端口。 netstat.exe只显示进程正在使用PID 4,但那是系统进程。 “netsh http show urlacl”根本不显示占用的端口。 IIS Express Tray程序以某种方式知道这一点。 当我尝试在端口被占用时启动另一个IIS Express实例时,我收到以下错误: “端口’40000’已被进程’IIS Express’使用(进程ID’10632’)。 任何人都知道如何获得这些信息?

AnonymousId始终为null

我有一个ASP.NET MVC站点。 当网站上发生错误时,我想记录exception以及Request.AnonymousID的值,以便能够发现一个用户是否遇到20个错误,或者20个用户遇到相同的错误。 以下内容已添加到web.config文件中: … 在Visual Studio中开发并使用IIS Express时,这可以按预期工作。 但是,当站点移动到测试环境(在Windows Server 2012 R2上运行IIS 8.5)时, Request.AnonymousID的值始终为null。 还为IIS中的站点配置了匿名身份validation。 每次更改配置后,我尝试重新启动站点,回收应用程序池,并在浏览器中清除cookie – 似乎没有任何效果。 生成.ASPXANONYMOUS cookie,但当我尝试在代码中使用它时,ID始终为空。 我甚至尝试创建一个只在页面上显示AnonymousId的快速虚拟站点,它在Test环境中工作,所以我无法弄清楚我在实际站点中做错了什么。 任何帮助将不胜感激。 编辑1:我已将以下内容添加到Global.asax ,以生成自定义AnonymousId: protected void AnonymousIdentification_Creating(object sender, AnonymousIdentificationEventArgs args) { string id = string.Format(“Test-{0}”, Guid.NewGuid()); args.AnonymousID = id; } 同样,这适用于我的机器和测试服务器上的虚拟站点,但不适用于实际站点。 该网站是一个子网站(例如mysite .domain.com),如果这有任何区别。 虚拟站点也是一个子站点,但匿名身份validation在这里工作“开箱即用”。 编辑2:在测试环境中, AnonymousId似乎不再为null。 它现在填充了添加到Global.asax的eventhandler中提供的格式。 因此,虽然看起来我已经正确设置了所有内容,但我仍然想知道可能阻止生成Id的原因。 这是配置问题吗? 我没有按正确的顺序做事(重启服务器/回收应用程序池,清除cookie等)?

Microsoft-IIS / 8.5,Oracle输出变量被截断

OracleConnection connection = DBHelper.OracleConnection; OracleCommand OraCommand = connection.CreateCommand(); OraCommand.CommandText = “AUTHENTICATION.Authenticate”; OraCommand.CommandType = CommandType.StoredProcedure; int zero = 0; OracleParameter newParam = null; OraCommand.Parameters.Add(newParam); newParam = new OracleParameter(“Authenticated”, OracleType.VarChar); newParam.Direction = ParameterDirection.Output; newParam.Size = 4000; OraCommand.Parameters.Add(newParam); newParam = new OracleParameter(“Message”, OracleType.VarChar); newParam.Direction = ParameterDirection.Output; newParam.Size = 4000; OraCommand.Parameters.Add(newParam); newParam = new OracleParameter(“Response”, OracleType.VarChar); newParam.Direction = ParameterDirection.Output; […]

File.Copy之后,另一个进程正在使用该文件

我正在尝试管理我的Web应用程序中的文件。 有时,我必须在文件夹中创建一个文件(使用File.Copy): File.Copy(@oldPath, @newPath); 几秒钟后,该文件可能会被删除: if (File.Exists(@newPath)) { File.Delete(@newPath); } 但是,我不知道为什么新文件在File.Copy之后仍然被服务器进程(IIS,w3wp.exe)阻止。 在File.Delete之后我得到了exception: “该进程无法访问该文件,因为它正由另一个进程使用。” 根据Api,File.Copy不会阻止文件,是吗? 我试图释放资源,但它没有奏效。 我该如何解决这个问题? 更新:确实,使用Process Explorer,IIS进程阻止了该文件。 我试图实现复制代码以手动释放资源,但问题仍然存在: public void copy(String oldPath, String newPath) { FileStream input = null; FileStream output = null; try { input = new FileStream(oldPath, FileMode.Open); output = new FileStream(newPath, FileMode.Create, FileAccess.ReadWrite); byte[] buffer = new byte[32768]; int read; while […]

在ASP.NET应用程序启动时显示存根页面

在ASP.NET应用程序仍处于初始化过程中时,是否可以显示特定页面? 我们有一个巨大的ASP.NET应用程序,在每次重新部署或AppDomain重新启动后,需要大约30秒才能完成其Application_Start()处理程序。 在此期间显示一个不错的自动重新加载“暂时不可用”页面将极大地改善第一用户的体验。 我试图将初始化程序代码提取到不同的线程中,但它有很多依赖项: HttpContext , Server和其他几个类在派生线程中不可用。 代码变得干扰和不可理解,所以我正在寻找更好的解决方案。 也许一些IIS配置或扩展?

Application_Start与serviceAutoStartProviders

我正在使用IIS7.5强制我的Web应用程序自动加载( startMode=”AlwaysRunning” ),我现在想要预加载我的缓存数据。 我有点困惑,因为两种方法看起来相同: 在global.asax中使用Application_Start 在IIS配置文件中使用serviceAutoStartProviders 他们似乎相当多余并做同样的事情。 如果是,我想我宁愿使用Application_Start而不是在IIS配置文件中创建代码依赖。 任何建议?