IIS(Internet信息服务)是一个Web服务器应用程序和一组由Microsoft作为Windows的一部分创建的功能扩展模块。 IIS版本6随Windows Server 2003和Windows XP Professional x64 Edition一起提供。 Windows XP和Windows Server 2003都已停止使用,因此必须完成向较新版本的迁移。
是否可以在已停止的 IIS 6 站点上预编译 ASP.Net 网站?
我在 IIS 上有 2 个站点,一个是实时站点,另一个是仅在实时站点上进行维护时才启动的站点。 在部署场景中,我停止实时站点...
IIS 6.0 64 位:SysInterals Proc Explorer 显示已加载 32 位 DLL?
尝试确定一个问题,该问题很可能是由于我们的 Web 应用程序在 IIS 以 64 位运行时尝试加载 32 位版本的 OracleAccess.dll(看起来既是 32 位又是 64 位)已经...
我已经部署了一个 ASP.NET MVC 站点,根目录中有一个 robots.txt 文件,但是当我尝试访问此 url 时,它返回 404。我的根目录中还有一个 .xml 和一个 .html 文件,他们返回有效
有没有办法在不浏览每个网站并检查其分配的池的情况下检查该池正在使用哪个网站? 我有大约 35 个网站,但我无法浏览
使用经典 ASP,我想检查给定的 IP 是否在 CIDR 中的 IP 范围内(例如 192.168.0.0/24)。 一些例子是: 192.168.0.1 属于 192.168.0.0/24? (是的) 192.168.0.100 属于...
获取当前 Windows 用户的名称,返回“IIS APPPOOL/Sitename”
我一生都无法弄清楚这一点。我尝试使用以下行获取登录 Windows 的当前用户的名称: 字符串用户 = System.Security.Principal.WindowsIdentity。
我刚刚在 VS 2008 中完成了我的第一个 C# 项目,现在运行良好。但现在我需要在我的新网站上发布这个项目。该项目与我的 SQL Server 2008 Adventureworks 数据库交互...
我的 wsdl 在地址位置放置了错误的域,如何修复? - - 我的 wsdl 在地址位置放置了错误的域,如何修复它? - <wsdl:service name="XWebService"> - <wsdl:port name="XServiceSoap" binding="tns:XWebServiceSoap"> <soap:address location="https://machine.wrongdomain.com.br/webservices/MapleStoryWebService.asmx" /> </wsdl:port> - <wsdl:port name="XWebServiceSoap12" binding="tns:XWebServiceSoap12"> <soap12:address location="https://machine.wrongdomain.com.br/webservices/XWebService.asmx" /> </wsdl:port> - <wsdl:port name="XWebServiceHttpGet" binding="tns:XWebServiceHttpGet"> <http:address location="https://machine.wrongdomain.com.br/webservices/MapleStoryWebService.asmx" /> </wsdl:port> - <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost"> <http:address location="https://machine.wrongdomain.com.br/webservices/XWebService.asmx" /> </wsdl:port> </wsdl:service> 真正的域名就像https://machine.goodDomain.com.br 该地址取自用于访问 WSDL 的 URL。如果它与您想要实际提供服务的服务器不同,那么您可以通过创建一个扩展 SoapExtensionReflector 的类来更改它。以下是有关如何更改 URL 的示例文章: http://blogs.msdn.com/kaevans/archive/2005/11/16/493496.aspx 另一种选择是使用 IIS URL 重写模块 (http://www.iis.net/downloads/microsoft/url-rewrite) 首先 - 捕获 XWebService.asmx?WSDL 的输出并将其保存为 HTML 文件(例如 wsdl.htm)。 编辑此文件并将位置更改为备用地址 ...来自 thishost.domain.com: - <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost"> <http:address location="http://thishost.domain.com/XWebService.asmx" /> </wsdl:port> ...至 thathost.domain.com: - <wsdl:port name="XWebServiceHttpPost" binding="tns:XWebServiceHttpPost"> <http:address location="http://thathost.domain.com/XWebService.asmx" /> </wsdl:port> 在 IIS 中 - 在网站/虚拟功能视图中找到 URL 重写图标。然后单击 添加规则 并选择 入站规则 - 空白规则。 使用规则 - 适当命名并设置将接收 WSDL 请求的 Web 服务 URL 的模式匹配。对于正则表达式: (.*)XWebservice.asmx 对于条件,将 {QUERY_STRING} 与 WSDL 以及 {REQUEST_METHOD} 与 GET 匹配。 对于Action - 将其设置为Rewrite(因此这对客户端来说是透明的)并选择我们之前保存的文件(wsdl.htm)。 这还会向 web.config 的 system.webServer 部分添加一个新的 rewrite 部分 <system.webServer> <rewrite> <rules> <rule name="WSDL Rewrite" stopProcessing="true"> <match url="(.*)XWebService.asmx" /> <conditions> <add input="{QUERY_STRING}" pattern="WSDL" /> <add input="{REQUEST_METHOD}" pattern="GET" /> </conditions> <action type="Rewrite" url="wsdl.htm" /> </rule> </rules> </rewrite> </system.webServer> 为什么不手动将 WSDL 文件中的地址编辑为应有的地址呢? 如果 WSDL 是由其他工具生成的,请告诉我们它是如何生成的,也许我们可以提供帮助。否则,没有法律禁止修改生成的文件以满足您的需要。如果原始用户环境的 WSDL 的问题只是 URL 错误,那么直接修改 URL 是完全合法的。 最初的反应是正确的。 WSDL 中的默认 URL 取决于用于访问 WSDL 的 URL。 我的团队过去处理更改服务 URL 的方式(例如,从开发环境过渡到测试或生产环境)是使用 wsdl.exe 为您的 Web 服务生成代码代理(代理实际上是通过以下方式创建的)也可以是 Web 或服务引用,但默认情况下不会显示在 Visual Studio 中),您可以编辑生成的代理类以从 (??) 任何您想要存储它的位置(数据库、配置文件等)读取服务的 URL。 解决方案很少,我会按照从简单到准确的顺序进行排序。 :) 不用担心 WSDL 中的 URL。 只需在客户端使用 Url 属性,就像在这种情况下: public class MyWebService : RemoteService { public MyWebService() : base() { Url = ConfigurationManager.AppSettings["MyServiceCustomUrl"]; } } 明显的缺点:很可能您将无法使用生成的 html(我的意思是为 Web 方法生成的表单)正确测试服务。 使用自定义wsdlHelpGenerator。 我没有测试这个解决方案,但乍一看,如果您基于原始的 DefaultWsdlHelpGenerator.aspx 创建自己的解决方案,它看起来很简单(您可以在 C:\Windows\Microsoft.NET\Framework* 文件夹中找到它) ,就我而言,它是 C:\Windows\Microsoft.NET\Framework 4.0.30319\Config\DefaultWsdlHelpGenerator.aspx)。 使用soapExtensionReflectorTypes。它将允许您使用 HttpSoap 协议地址执行任何操作。 创建一个处理程序(下面的示例将 http 更改为 https): public class HttpsReflector : SoapExtensionReflector { public override void ReflectMethod() { // nothing to override } public override void ReflectDescription() { ServiceDescription description = ReflectionContext.ServiceDescription; foreach (System.Web.Services.Description.Service service in description.Services) { foreach (Port port in service.Ports) { foreach (ServiceDescriptionFormatExtension extension in port.Extensions) { if (extension is SoapAddressBinding binding) { binding.Location = binding.Location.Replace("http://", "https://"); } } } } } } 在 web.config 中注册: <system.web> <webServices> <soapExtensionReflectorTypes> <!-- Required to replace http in addresses for HttpSoap protocol --> <add type="MyWebServices.WsdlFixHttp.HttpsReflector, MyWebServices"/> </soapExtensionReflectorTypes> </webServices> </system.web> 缺点:无法控制 HttpPost/HttpGet 协议。 实现IIS重写模块。它将允许您修改服务产生的任何输出。可以与#3一起使用。 创建2个类,流装饰器: public class StreamWatcher : Stream { private readonly Stream _base; private readonly MemoryStream _memoryStream = new MemoryStream(); public StreamWatcher(Stream stream) { _base = stream; } public override void Flush() { _base.Flush(); } public override int Read(byte[] buffer, int offset, int count) { return _base.Read(buffer, offset, count); } public override void Write(byte[] buffer, int offset, int count) { _memoryStream.Write(buffer, offset, count); _base.Write(buffer, offset, count); } public override string ToString() { return Encoding.UTF8.GetString(_memoryStream.ToArray()); } public override bool CanRead => _base.CanRead; public override bool CanSeek => _base.CanSeek; public override bool CanWrite => _base.CanWrite; public override long Seek(long offset, SeekOrigin origin) => _base.Seek(offset, origin); public override void SetLength(long value) => _base.SetLength(value); public override long Length => _base.Length; public override long Position { get => _base.Position; set => _base.Position = value; } } 和模块: public class WsdlFixHttpModule : IHttpModule { public void Init(HttpApplication context) { context.EndRequest += (s, e) => OnEndRequest(s, e); context.BeginRequest += (s, e) => OnBeginRequest(s, e); } private void OnBeginRequest(object sender, EventArgs e) { HttpContext httpContext = HttpContext.Current; if (httpContext.Request.Url.Query.Equals("?WSDL", StringComparison.InvariantCultureIgnoreCase) || IsAsmxGetRequest(httpContext)) { httpContext.Response.Filter = new StreamWatcher(httpContext.Response.Filter); } } private void OnEndRequest(object sender, EventArgs e) { HttpContext httpContext = HttpContext.Current; string oldValue = "", newValue = ""; bool replacementRequired = false; if (httpContext.Request.Url.Query.Equals("?WSDL", StringComparison.InvariantCultureIgnoreCase)) { oldValue = ":address location=\"http://"; newValue = ":address location=\"https://"; replacementRequired = true; } else if (IsAsmxGetRequest(httpContext)) { oldValue = "<form target=\"_blank\" action='http://"; newValue = "<form target=\"_blank\" action='https://"; replacementRequired = true; } if (replacementRequired) { string wsdl = httpContext.Response.Filter.ToString(); wsdl = wsdl.Replace(oldValue, newValue); httpContext.Response.Clear(); httpContext.Response.Write(wsdl); httpContext.Response.End(); } } private static bool IsAsmxGetRequest(HttpContext httpContext) { return httpContext.Response.ContentType == "text/html" && httpContext.Request.CurrentExecutionFilePathExtension.Equals(".asmx", StringComparison.InvariantCultureIgnoreCase) && httpContext.Request.HttpMethod == "GET"; } public void Dispose() { } } 然后在web.config中注册模块: <system.webServer xdt:Transform="Insert"> <modules> <!-- Required to replace http in addresses for HttpPost/HttpGet protocols --> <add name="WsdlFixHttpModule" type="MyWebServices.WsdlFixHttp.WsdlFixHttpModule, MyWebServices"/> </modules> </system.webServer> 请注意,上面的注册是集成模式,经典模式需要在里面注册system.web。 因此,在我们的遗留项目中,我使用了 3+4 方法,但如果我想再次这样做,我会尝试使用#2 方法。 :)
编译器错误消息:BC30560:“xxxxxxxx_aspx”在命名空间“ASP”中不明确
我使用 msi 在测试服务器上安装网站后收到此错误。 这与这个SO问题类似。不过这个问题和开发环境有关,所以不是这样的...
我无法创建网站,因为关联未出现在 IIS Express 10 中
我无法创建网站,因为关联不会出现在 IIS Express 10 中。我已经激活了几乎所有内容并重新启动,但没有任何变化,有什么解决方案吗? 我正在尝试安装此网站...
我已经在 IIS 下构建并部署了 dotnet 6 6.0.300 应用程序。该应用程序包含以下 global.json 文件: { “SDK”:{ “版本”:“6.0.300&q...
需要在IIS上为ASP.Net Core Identity服务器配置SMTP设置,以便进行EMail验证。
我成功地部署了身份服务器,它工作得很好,也在VPS上配置了SMTP设置,但当我尝试用ASP.Net Core 3.1应用程序来设置它时,无法找到SMTP ...
我需要在IIS 6服务器(Windows 2003 Web服务器)的web.config中进行301重定向。我是一个Apache服务器的家伙,对Windows Web服务器没有一丝了解。我只有访问 ...
我在所有浏览器中都遇到“连接已重置”问题。以下是Mozilla Firefox中显示的详细信息。页面加载时重置了与服务器的连接。该站点可能是...
我需要URL将子目录重写到外部域。示例:访问“ https://example1.com/test”时,应打开“ https://example2.com/hello”。该URL仍应为“ https:// example1 ....
任何人都知道DirectoryEntry.Invoke [closed]的所有方法名称
任何人都知道DirectoryEntry.Invoke的所有方法名称
Web应用程序登录失败,用户'NT AUTHORITY \ ANONYMOUS LOGON'
我看到很多人都遇到了这个错误,但是他们的处境似乎与我的有所不同。我有一个在Windows 2003 Server的IIS 6.0中运行的ASP.NET 4.0 Web应用程序。当我远程到达...
viewStateEncryptionMode =“始终”不加密
由于某些安全问题,我需要启用视图状态加密。我已经关闭了viewstate和viewstateMAC,但是我需要对...
如何在IIS中启动XXX.bat文件?我要运行此文件..当我在开发PC中执行它时,它运行良好。但是,虽然我在IIS中部署了它的工作状态,但未执行.bat文件,所以...
嗨,我在服务器中运行.bat文件时遇到问题。在本地,我使用了受保护的void Submit_Click(object sender,EventArgs e){字符串路径= @“ D:\ Test \ Sop_Test \ Test.bat”; System.Diagnostics ....