iis-6 相关问题

IIS(Internet信息服务)是一个Web服务器应用程序和一组由Microsoft作为Windows的一部分创建的功能扩展模块。 IIS版本6随Windows Server 2003和Windows XP Professional x64 Edition一起提供。 Windows XP和Windows Server 2003都已停止使用,因此必须完成向较新版本的迁移。

使用 IIS 6.0 将 C# 项目添加到网站

我刚刚在 VS 2008 中完成了我的第一个 C# 项目,现在运行良好。但现在我需要在我的新网站上发布这个项目。该项目与我的 SQL Server 2008 Adventureworks 数据库交互...

回答 3 投票 0

如何更改我的 wsdl 的地址位置

我的 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 方法。 :)

回答 5 投票 0

编译器错误消息:BC30560:“xxxxxxxx_aspx”在命名空间“ASP”中不明确

我使用 msi 在测试服务器上安装网站后收到此错误。 这与这个SO问题类似。不过这个问题和开发环境有关,所以不是这样的...

回答 1 投票 0

我无法创建网站,因为关联未出现在 IIS Express 10 中

我无法创建网站,因为关联不会出现在 IIS Express 10 中。我已经激活了几乎所有内容并重新启动,但没有任何变化,有什么解决方案吗? 我正在尝试安装此网站...

回答 1 投票 0

如何确认 IIS 正在使用 dotnet 6

我已经在 IIS 下构建并部署了 dotnet 6 6.0.300 应用程序。该应用程序包含以下 global.json 文件: { “SDK”:{ “版本”:“6.0.300&q...

回答 1 投票 0

需要在IIS上为ASP.Net Core Identity服务器配置SMTP设置,以便进行EMail验证。

我成功地部署了身份服务器,它工作得很好,也在VPS上配置了SMTP设置,但当我尝试用ASP.Net Core 3.1应用程序来设置它时,无法找到SMTP ...

回答 1 投票 3

301 在IIS 6上从web.config重定向。

我需要在IIS 6服务器(Windows 2003 Web服务器)的web.config中进行301重定向。我是一个Apache服务器的家伙,对Windows Web服务器没有一丝了解。我只有访问 ...

回答 1 投票 1

所有浏览器中的连接均已重置问题

我在所有浏览器中都遇到“连接已重置”问题。以下是Mozilla Firefox中显示的详细信息。页面加载时重置了与服务器的连接。该站点可能是...

回答 1 投票 1

ASP.net URL将子目录重写为外部URL

我需要URL将子目录重写到外部域。示例:访问“ https://example1.com/test”时,应打开“ https://example2.com/hello”。该URL仍应为“ https:// example1 ....

回答 1 投票 0

任何人都知道DirectoryEntry.Invoke [closed]的所有方法名称

任何人都知道DirectoryEntry.Invoke的所有方法名称

回答 2 投票 2

Web应用程序登录失败,用户'NT AUTHORITY \ ANONYMOUS LOGON'

我看到很多人都遇到了这个错误,但是他们的处境似乎与我的有所不同。我有一个在Windows 2003 Server的IIS 6.0中运行的ASP.NET 4.0 Web应用程序。当我远程到达...

回答 3 投票 21

viewStateEncryptionMode =“始终”不加密

由于某些安全问题,我需要启用视图状态加密。我已经关闭了viewstate和viewstateMAC,但是我需要对...

回答 1 投票 4

如何在ASP.NET中运行.Bat文件,IIS

如何在IIS中启动XXX.bat文件?我要运行此文件..当我在开发PC中执行它时,它运行良好。但是,虽然我在IIS中部署了它的工作状态,但未执行.bat文件,所以...

回答 2 投票 0

在iis中托管后如何在Web应用程序中运行.bat文件?

嗨,我在服务器中运行.bat文件时遇到问题。在本地,我使用了受保护的void Submit_Click(object sender,EventArgs e){字符串路径= @“ D:\ Test \ Sop_Test \ Test.bat”; System.Diagnostics ....

回答 1 投票 0

如何从Web API诊断缓慢的HTTPS请求

我在Windows Server 2012 R2上有一个Web API(ASP.NET Core 3.0,IIS 6.2)。当它向外部SOAP API发出HTTPS请求时,我在20秒后收到代码500的响应。我的API在...

回答 1 投票 0

[php.ini中的max_execution_time不会更新,其他设置会

因此,我已经编辑了php.ini文件,以允许更长的max_execution_time,以及其他一些设置。当我在Windows Server 2003上的IIS 6中回收应用程序池并检查php信息文件时,我会...'

回答 3 投票 1

通过WMI问题从ASP.NET重新启动应用程序池

我一直试图创建一个C#ASP.NET页面,该页面位于Windows Server 2003 IIS 6服务器上,并且在(远程)调用时,将重新启动/回收服务器上的特定应用程序池。我没去过...

回答 2 投票 3

如何检查IIS上每个会话的内存使用情况?

有没有办法不监视IIS上每个会话的内存使用情况?我已经看到了如何对每个站点和/或每个应用程序池而不是每个会话执行一些分析。 IIS因OutOfMemoryException而崩溃,并且...

回答 1 投票 -1

ASP.NET MVC + jQuery + IIS6:多个Ajax请求

我不确定问题出在哪里...我有一个ajax请求,该请求会在包含软件包列表的页面上检查软件包的跟踪信息:$(“。fedex_status”)。each(function(){ var item = ...

回答 3 投票 1

以编程方式创建应用程序池,错误设置为“ ManagedPipelineMode”

我正在使用以下代码以编程方式为IIS 6(Windows Server 2003R2)创建应用程序池,但在尝试设置ManagedPipelineMode尝试1 ...的行上出现错误,

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.