Tag: iis

WebServiceexception – 基础连接已关闭:发送时发生意外错误

我编写了一个以下方法来从客户端Web服务检索XML响应。 在下面的代码中,我收到错误{“无法从传输连接读取数据:现有连接被远程主机强行关闭。”} 请帮忙。 代码下面出错 WebResponse webResponse = req.GetResponse(); 调用WebService的方法 – [WebMethod] public XmlDocument GetData() { string sError = “”; string sApiSession; DateTime dtRequested = DateTime.Now; XmlDocument xmlDoc = new XmlDocument(); XDocument xDoc = new XDocument(); try { NetworkCredential creds = new NetworkCredential(); creds.UserName = System.Configuration.ConfigurationManager.AppSettings.Get(“UserName”); creds.Password = System.Configuration.ConfigurationManager.AppSettings.Get(“Password”); WebRequest req = WebRequest.Create(System.Configuration.ConfigurationManager.AppSettings.Get(“Services”)); req.Method = System.Configuration.ConfigurationManager.AppSettings.Get(“Method”); […]

自动将新创建的文件上载到SFTP服务器

ASP.NET应用程序(在Windows服务器/ IIS 7上运行)必须将当前用户上载的大文件传输到外部SFTP服务器。 由于文件大小,我们的想法是异步执行此操作。 想法是ASP.NET应用程序将上载的文件存储在Windows服务器的本地目录中。 当前用户可以继续他的工作。 Windows服务或Quartz作业(其他工具(*)/ ideas?)现在负责将文件传输到外部SFTP服务器。 (*)是否有现有的工具可以监听Windows目录的更改,然后在SFTP服务器上移动文件(包括处理通信错误/重试)? 如果没有现有的解决方案,您是否有类似的要求? 我们需要考虑什么? 由于与SFTP服务器的连接不是很稳定,因此需要使用自动重试function优化error handling。

ASP.NET MVC网站在任何浏览器上都被重定向到本地IIS而不是IIS express

目标: 在任何浏览器上在IIS Express上本地运行ASP.NET MVC网站。 历史: 关注的项目是一个ASP.NET MVC网站,最初设置为使用启用了SSL的本地IIS。 我尝试在IIS Express上进行设置: RouteConfig.cs文件 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}”, defaults: new { controller = “Home”, action = “_View”, id = UrlParameter.Optional } ); } web.config中有2种重定向可能性 用于身份validation 用于error handling 问题: 虽然完成了上述设置,但站点将重定向到本地IIS( https:// localhost )而不是IIS express(例如http:// localhost / 12345或https:// localhost / 12345 )。 到目前为止尝试了什么: […]

使用客户端证书进行智能卡身份validation

我有第三方Web应用程序,现在我的经理想要将智能卡身份validation添加到某些页面(而不是整个应用程序)并返回证书信息。 我想的是向这些页面添加按钮,在onclick事件中,我将进行客户端证书身份validation(其中将出现证书选择窗口,然后是“PIN”窗口)并返回证书对象以供进一步处理。 我最初想过一个Web服务来进行客户端证书身份validation并返回证书信息,这很好,因为我们可能会考虑在其他Web应用程序(在不同平台上)使用该Web服务。 但是,我找不到任何代码示例。 然后我找到了IIS解决方案 。 我现在创建了一个单独的文件夹,其中包含一个需要客户端证书的页面。 在按钮单击事件上,我重定向到该页面。 然后在该页面上,我使用X509Certificate类检索证书信息。 我不认为这对我正在做的事情有所帮助,或者至少我不知道它有何帮助。 所以我的问题是(抱歉长篇背景说明) 如何使用认证结果从该页面重定向? 如果可能,有关如何构建以与IIS相同的方式进行客户端证书身份validation的Web服务的任何参考? 谢谢 更新我环顾四周,仍然没有关于如何实现这一点的线索。 我不确定如何在SSL / TLS握手阶段为Web服务编写代码。 我不知道如何将认证返回到我调用此function的页面。 所以我现在要做的是从需要客户端身份validation的受保护页面重定向。 Web服务器似乎缓存了身份validation结果。 这是我的第三个问题,希望有人能回答。 如何在页面会话结束时清除validation结果,以便每次访问页面时,它都会请求客户端validation(将出现证书选择窗口,然后是“PIN”窗口)?

什么解码我编码的哈希符号(%23)?

我们注意到有几台机器存在带有哈希参数的URL问题。 使用URL调试请求时: http://domain.com/Entity(%23{number-here} 我们在global.asax文件的Application_BeginRequest方法中看到Url.OriginalString的URL: http://domain.com/Entity(#23{number-here} : Url.OriginalString ( Url.LocalPath http://domain.com/Entity(#23{number-here} Url.OriginalString http://domain.com/Entity(#23{number-here} , Url.LocalPath有http://domain.com/Entity(以及散列后的所有字符都在Url.Fragment 。 在运行Windows 8.1和IIS 8.5的计算机上运行完全相同的应用程序时,它按预期工作, Url.OrinalString是http://domain.com/Entity(%23{number-here} 。 我在web.config或IIS配置中的URL重写部分中看不到任何疑问。 这种行为可能是什么原因?

ASP.NET Web应用程序在IIS Web服务器上调用Delphi DLL,在返回PChar字符串时锁定

如果我不返回任何内容,则工作正常,或者返回一个整数。 但如果我试图返回一个PChar,即… result := PChar(”) or result:= PChar(‘Hello’) 网络应用程序只是冻结,我看到它的内存计数在任务管理器中逐渐变得越来越高。 奇怪的是,DLL在VStudio调试服务器或C#应用程序上运行良好。 我唯一能想到的就是IIS服务器在64位Windows上运行。 它似乎不是一个兼容性问题,因为我可以成功写入文本文件并从DLL中执行其他操作…我只是不能返回一个PChar字符串。 尝试使用PWideChar,尝试返回’something \ 0’,尝试了我能想到的一切。 不幸的是没有运气。 [DllImport(“TheLib.dll”, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)] private static extern string SomeFunction(); string result = SomeFunction(); delphi: library TheLib; function SomeFunction() : PChar export; stdcall; begin return PChar(”); end; exports SomeFunction

为什么AppDomain.CurrentDomain.GetAssemblies()在某些条件下不返回Global.asax中的依赖程序集?

编辑 :此前称为“IIS重新启动和应用程序初始化之间的应用程序初始化行为”。 我已经更改了标题,以便从IIS /应用程序初始化中扩展问题,因为观察到的行为与AppDomain.CurrentDomain.GetAssemblies(); 我正在使用IIS应用程序初始化模块来预热asmx wed服务。 我已经实现了一些预热代码,以确保应用程序应用程序初始化成功JIT是我在Global.asax Application_Start事件中的asmx服务。 这使用System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod()来遍历应用程序中的所有程序集(它还会获取所有程序集依赖项),以确保第一次调用服务的速度尽可能快。 当我使用“net stop w3svc&net start w3svc”来观察这种行为时,我可以看到(通过记录)所有程序集都是JIT,并且第一次调用服务的速度很快。 但是,当应用程序池在其配置的时间表(03:00:00)上自动回收时,日志仅显示直接引用的程序集是JIT,而不是也位于文件夹中的依赖项。 这导致第一次调用服务时产生不可接受的开销。 App Init在所有其他方面完全按预期执行,但为什么IIS重新循环应用程序池只有JIT编译直接引用的程序集而不是它的依赖项?

即使pdb存在,IIS也不会在堆栈跟踪中给出行号

Web配置有debug = true,项目是调试版本,pdb文件存在于bin目录中,但是当抛出exception时,我的堆栈跟踪中没有得到行号。 适用于本地IIS / Cassini,但不适用于我们的测试IIS服务器。 是否有一些明显的设置,我可能会失踪?

不存在的目录/文件Web API(不是控制器)的自定义错误页面

我知道我可以为不存在的控制器或错误的路由设置自定义错误页面但是如果用户试图下载某个目录中不存在的文件,我该如何显示自定义错误页面? 我根本无法工作。 它仍然显示默认错误页面。

回收调用Application_Start吗?

Application_Start是否在IIS 7中被回收调用? 谢谢