Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在现有WCF应用程序(IIS)内托管ASP.net MVC 4站点_C#_Asp.net_Asp.net Mvc_Wcf_Iis - Fatal编程技术网

C# 在现有WCF应用程序(IIS)内托管ASP.net MVC 4站点

C# 在现有WCF应用程序(IIS)内托管ASP.net MVC 4站点,c#,asp.net,asp.net-mvc,wcf,iis,C#,Asp.net,Asp.net Mvc,Wcf,Iis,我的公司提供了一个带有.NETWCF的大规模SOAP应用程序。在这个现有的WCF应用程序中,我们现在需要托管一个Asp.net MVC 4或5网站。这意味着我们需要某种路由,即将特定类型的URI完全重定向到Asp子组件,并将其作为单独的应用程序进行处理 搜索这个问题时,我只会找到相反的解决方案——可以肯定的是,Asp MVC内部通向WCF子组件的路由非常简单和直接。 然而,在我们的情况下,这是不可能的。WCF包含很多我们不能也绝对不想传输到Asp组件中的安全钩子。另一方面,将其划分为两个独立的应

我的公司提供了一个带有.NETWCF的大规模SOAP应用程序。在这个现有的WCF应用程序中,我们现在需要托管一个Asp.net MVC 4或5网站。这意味着我们需要某种路由,即将特定类型的URI完全重定向到Asp子组件,并将其作为单独的应用程序进行处理

搜索这个问题时,我只会找到相反的解决方案——可以肯定的是,Asp MVC内部通向WCF子组件的路由非常简单和直接。 然而,在我们的情况下,这是不可能的。WCF包含很多我们不能也绝对不想传输到Asp组件中的安全钩子。另一方面,将其划分为两个独立的应用程序并让IIS进行路由也是不可能的解决方案,因为我们的应用程序与我们公司的其他软件包存在大量依赖关系,我们不希望在单独的应用程序中维护两次

现有的WCF组件作为一个单独的web应用程序托管在带有.NET 4.0应用程序池的IIS 7.5中


从WCF到Asp.net MVC有什么合理的子路由方式吗?

这种方法听起来会给您和您的公司带来更多的问题。 我看到你提到把它分成两个独立的组件是不可能的,但是我会考虑其中的几个原因。

WCF和MVC中的身份验证和授权有很大不同,我会将这些代码重构成一个不依赖于每种技术的库,然后为每个应用程序编写一个WCF和MVC抽象。也就是说,您可以得到重用,但也有两个组件可以理解底层技术

路由WCF不了解路由,它只有一个sinlge入口点。决定在消息的有效负载中嵌入要调用的方法。 另一方面,MVC基于url进行路由

将更新部署到MVC站点将需要WCF服务更新,反之亦然

这些都是我脑子里想不出来的。这样做似乎太复杂了。 我会考虑在IIS中单独托管的两个应用程序,其中公共逻辑被提取到允许重用的公共类库中。

< P>我建议您彻底阅读。 您将发现,让WCF介于IIS和ASP.NET之间非常困难,或者至少是开创性的。它们被设计为并排或独立工作

鉴于让WCF和ASP.NET/MVC使用相同的底层身份验证系统(例如Forms Auth)非常简单,您对正确构建该系统的主要反对意见似乎是,它与我们公司的其他软件包存在大量依赖关系,我们不希望在单独的应用程序中维护两次


同样,解决这个问题似乎是一个相当简单的重构过程。您的任务只是从业务逻辑中提取出所有WCF特定的代码,然后将业务逻辑放入单独的类库中,以便在WCF和MVC应用程序之间共享。对我来说,没有比这更明智的办法来解决你的问题了。任何其他方法都可能会给您带来比您目前拥有的整体式WCF应用程序更大的麻烦。

您的WCF应用程序是以何种形式存在的?e、 g.它是在Windows服务中自托管还是在IIS中自托管?我怀疑您的体系结构描述不够清晰,无法得到答案。它在IIS 7.5中—我还将其添加到我的问题文本中。请让我知道如果你需要任何额外的信息!谢谢你的回答,我以前也有同样的感觉,但我希望有一个更简单的解决办法。但我担心我们必须找到一个好办法让我们的应用程序共存。