Tag: iis

无法读取web.config文件

当我们尝试读取配置文件中的连接字符串时,我们收到错误。 这是我读取配置文件的方式: ConfigurationManager.ConnectionStrings[connectionStringName]; 以下是错误。 虚拟路径’/ site1’映射到另一个应用程序,这是不允许的。 最后,这是我在IIS服务器中的站点结构。 请注意,这三个子网站位于主网站下。 注意:并非总是发生此错误。 有时,所有网站都可以正常运行,没有任何问 此外,三个子网站引用相同的代码库。 以下是完整的跟踪日志: The following exception was thrown: The virtual path ‘/site1’ maps to another application, which is not allowed.. Exception details: System.ArgumentException: The virtual path ‘/site1’ maps to another application, which is not allowed. at System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) at System.Web.HttpContext.GetFilePathData() at System.Web.HttpContext.GetSection(String sectionName) at […]

尝试从Web应用程序访问报告服务时,Internet Explorer会导致IIS 500错误

我有一个aspx Web表单页面,它调用SQL 2012报告服务服务器上托管的SQL 2012 SSRS报告,并使用报告查看器在aspx页面上显示报告。 问题是当我单击链接以将参数发送到报告服务器并运行报告页面挂起时(仅在IE上)。 在服务器上的IIS日志中,与请求对应的日志中存在500错误。 服务器上的事件查看器中没有匹配的错误消息。 当我在提琴手上查看它时,请求就会消失,但什么都没有回来。 当我尝试浏览除Internet Explorer以外的任何浏览器上的页面时,它会正确显示。 奇怪的是,当我第一次部署它并使用IE浏览它时它工作正常,但是大约5-10分钟之后就会出现问题。 如果我在服务器上执行IISRESET它可以正常工作,但是在5-10分钟后(或者在使用一定量之后)再次出现问题。 我没有在报告,报告服务器或调用报告的页面上进行任何更改,因此这不是一个简单的C#错误。 配置文件中唯一改变的是一些entity framework连接字符串。 如果有人知道要寻找什么来帮助找出造成这种情况的原因,我将非常感激 编辑:请求确实在大约十分钟后回来,报告。 因此,对于IE以外的任何浏览器,报告都会立即返回,并且服务器上不会发生500错误。 对于IE,IIS日志中会出现500错误,等待大约10到15分钟后,服务器将返回报告 编辑:IIS日志中显示失败的IE请求的示例: POST /Reporting/ – 443 nkennymgr 84.203.177.34 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 0 64 130390

错误500 Web API

过去4个小时我一直试图解决这个问题。 我有一个新的Web API项目 – 在开发上100%正常工作, 但是在实时服务器上我得到500 Internal Server Error 。 当我部署新版本并直接向http://URL/Action发送请求时,我收到错误。 但是,如果我转到http://URL/ first然后将POST请求发送到http://URL/Action ,它可以工作。 如果没有对API提出12,13 hours请求,情况也是如此 因此,首先我必须打开: http://URL/Action ,然后发送POST请求。 所以Project使用Ninject ,这是Startup.cs using System.Collections.Generic; using System.Reflection; using System.Web.Http; using API.MyApi; using Business.Bindings; using Microsoft.Owin; using Ninject; using Ninject.Modules; using Ninject.Web.Common.OwinHost; using Ninject.Web.WebApi.OwinHost; using Owin; [assembly: OwinStartup(typeof(Startup))] namespace API.MyApi { public class Startup { public void Configuration(IAppBuilder […]

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时,为什么它会被改变?

我可以与所有应用程序共享一个矿库吗?

我有一个项目(.NET 4,但我也可以使用.NET 4.5),它总是使用我所做的相同的DLL(它是我的数据层,或多或少)。 每个网站都是一个应用程序。 我想与每个应用程序共享此库,因此如果我进行更新,我将仅更新“文件夹”,并且我不需要在每个Web应用程序的每个Bin文件夹上复制/粘贴此库。 可能吗? 例如,如果我创建我的类MyClass2013 ,当我加载Visual Studio时它将可用于每个Web应用程序: MyClass2013 myClass = new MyClass2013() 没有复制和粘贴Bin的DLL(我有这个类/方法的定义等等)每次,对于每个应用程序,如果我做一些编辑,保持所有更新。 以图书馆System为例:每个项目都可以访问,我什么都不导入!

如何将文件上载到IIS中托管的.NET 3.5 WCF服务?

我已经把头发拉了一段时间了。 有人可以提供一个非常简单的示例(或工作示例的链接),说明如何将文件上载到IIS中托管的WCF服务。 我从简单的事情开始。 我想通过POST从客户端调用URL,传递文件名并发送文件。 所以我在合同中添加了以下内容: [OperationContract] [WebInvoke(Method = “POST”, UriTemplate = “/UploadFile?fileName={fileName}”)] void Upload(string fileName, Stream stream); 在.svc文件中实现它: public void Upload(string fileName, Stream stream) { Debug.WriteLine((fileName)); } 我立即在运行项目时遇到错误: For request in operation Upload to be a stream the operation must have a single parameter whose type is Stream. 不知道从哪里开始。 很想看到一个真实的工作示例。 PS我在.NET 4中用WCF 4做了这个,它看起来简单得多,但我不得不降级。 在.NET 3.5中,我遗漏了一些东西。

可以安全地在IIS中托管NServiceBus发布者吗?

我想知道在IIS中托管作为事件发布者的NServiceBus端点是否安全? 为了澄清,我们使用IIS中托管的应用程序作为我们的CRM系统(Microsoft Dynamics CRM),并且我希望在更新联系人信息时使用NServiceBus发布事件。 MS CRM允许使用自定义插件来响应联系人更新,我打算创建一个插件,通过NServiceBus发布“ContactUpdated”事件。 因此,这实际上意味着我的NServiceBus事件发布端点托管在IIS中。 现在,我知道自托管的NServiceBus端点将创建自己的工作线程,以监视来自队列的传入消息(在本例中为订阅消息)。 因为如果没有更多的传入Web请求,IIS可以自由卸载工作进程,因此使用IIS来托管长时间运行的进程通常不是一个好主意 。 但是,我会说NServiceBus队列监视线程不符合长时间运行的进程,因为它不进行任何处理并且可以随时停止:新的订阅请求将简单地排队,直到Web应用程序为止。再次重启。 我只是想知道从NServiceBus的角度来看,IIS清理这个NServiceBus线程的方式是否安全? (顺便说一下,我也发现了这篇文章,但我不得不承认只有Scaling out论证才能引起我的共鸣,这与我们的情况无关。)

诊断asp.net网站/应用程序池的性能

我对使用ASP.Net/C#开发的网站存在问题,有时会无限期地占用所有CPU使用率(100%)。 你有什么想法/提示怎么会导致这样的资源匮乏? 该网站仍在响应,因此它没有崩溃或类似的东西。 我有点无能为力从哪里开始! 谢谢!

同一IIS服务器上的两个服务堆栈API

我目前处于需要将多个Service Stack API部署到同一服务器并获得“AppHostBase”的情况。 实例已经设置’。 我发现这个链接: ServiceStack AppHost是一个单身人士? 但它似乎与相关API或版本化API的多个版本有关。 这不是我的情景。 我如何(或有办法)配置多个完全不相关的服务堆栈API,并且彼此之间没有任何相关知识可以在同一台服务器上同时运行?

ExecuteRegisteredAsyncTasks是否释放请求处理线程以服务其他请求?

我注意到从ExecuteRegisteredAsyncTasks调用返回后的代码在与此调用之前的代码相同的线程中执行。 所以我理解手动调用ExecuteRegisteredAsyncTasks并不会释放请求处理线程来为其他请求提供服务,这种方法应该只是自动调用才能获得扩展优势? 在msdn上是示例代码,但帮助不回答这个问题。 UPDATE 就我而言,在PageAsyncTasks我异步调用Web服务(使用Begin *和End *),所以我没有使用线程池。