托管Fusion作为反向代理

时间:2013-01-08 14:23:39

标签: iis-7.5 reverse-proxy managedfusion

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

我试过了:

  

2013-01-08T13:49:41 * ** * ** * ** * < / EM> ** * ** * ** * ** * ** * < / EM> ** * ** * ** * ** * ** * < / EM> ** * ** *
     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或其他任何项目上)。


更新:我终于设法让Microsoft特定的方式正常运行。诀窍(我错过了)是我需要创建一个单独的空Web应用程序,并且只在这个新应用程序上创建反向代理。

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

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

2 个答案:

答案 0 :(得分:1)

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

显然除了没有自动添加nuget软件包的模块外,还要注册处理程序

的Web.config:

<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>

答案 1 :(得分:0)

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

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

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

这样就可以实现对远程服务器的服务调用,而不是在本地解释。

这也是Managed Fusion解决问题的结果! : - )