0

我正在尝试(但失败)设置反向代理。

我试过了:

2013-01-08T13:49:41 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * * * * ** *
2013-01-08T13:49:41 [重写] 输入:http
://swisscom-live.emusetech.com:81/ping/ somecall.svc 2013-01-08T13:49:41 [规则 0 ] 输入:/ping/somecall.svc
2013-01-08T13:49:41 [规则 0] 规则模式匹配
2013-01-08T13:49:41 [规则 0] 输出:http ://my.proxy.com/ somecall.svc
2013-01-08T13:49:41 [重写] 代理: http: //my.proxy.com/somecall.svc
2013-01-08T13:49:41 * ** * ** * ** * ** * * * * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** *

但是,实际的网络浏览器向我显示来自“本地”机器的 404 错误。日志说它正在做正确的事情,但我无法弄清楚为什么它实际上没有这样做!


指点赞赏!(在 Managed Fusion 或任何其他项目上)。


更新: 我终于设法让微软特有的方式工作。诀窍(我缺少的)是我需要创建一个单独的空 Web 应用程序,并且只在这个新应用程序上创建反向代理。

我怀疑我试图添加它的其他应用程序有一些覆盖配置,这些配置阻止了 URL 重写工作(但仍然允许重定向)。

不过,仍然对有关 Managed Fusion 问题的任何评论感兴趣!!!

4

2 回答 2

1

使用托管融合作为代理时遇到相同的问题 (404)。

显然,除了安装 nuget 包时未自动添加的模块之外,还有一个处理程序要注册。

网络配置:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <add name="RewriterModule" type="ManagedFusion.Rewriter.RewriterModule, ManagedFusion.Rewriter" preCondition="" />
    </modules>
    <handlers>
      <add name="RewriterProxyHandler" preCondition="integratedMode" verb="*" path="RewriterProxy.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
</system.webServer>
于 2015-02-13T13:26:20.093 回答
0

当我将上述解决方案移至生产机器时,它无法用于包含.svc. 事实证明,另一个问题的 [this answer][5] 有解决方案。

这最终将其添加到反向代理的 web.config 中:

<system.web>
 <compilation targetFramework="4.0">
  <buildProviders>
   <remove extension=".svc" />            
  </buildProviders>
 </compilation>
</system.web>

这样对远程服务器的服务调用实际上是进行的,而不是在本地解释。

这也解决了托管融合问题!:-)

于 2013-01-10T01:32:54.833 回答