WCF 和 ASP.Net 预编译

Posted

技术标签:

【中文标题】WCF 和 ASP.Net 预编译【英文标题】:WCF and ASP.Net Precompile 【发布时间】:2011-04-08 18:23:43 【问题描述】:

在我的 asp.net Web 应用程序的“服务”目录中有一个 WCF 服务。在

/Services/MyService.svc
/Services/MyService.svc.cs

将我的源代码复制到虚拟目录时一切正常。出于各种原因,我们真的希望预编译代码,但是当我们执行服务中断时。我假设现在“.cs”文件已预编译,“/Services”目录中不再有“MyService.svc.cs”。

错误

错误:无法从http://myurl.com/services/MyService.svc获取元数据

我的 .svc 标记是标准:

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.MyService" CodeBehind="MyNamespace.MyService.svc.cs" %>

我做错了什么,或者我可以在 WCF 客户端/服务上进行更改以允许 ASP.net 预编译吗?

【问题讨论】:

它是网站还是网络应用程序? @BrandonZeider - 它是一个网络应用程序。 【参考方案1】:

假设您谈论的是预编译网站,请查看this blog post。基本上网站必须是可更新的。

【讨论】:

感谢您的回答,但我们不希望网站“可更新”,这是我们想要预编译的原因之一。 @AGoodDisplayName - 该链接中有一些 cmets 建议了一些其他选项。检查那些。 :) @tridus - 谢谢你是对的这些建议确实有我们发现工作的答案。我将接受这个答案,请参阅我的答案以获取更多详细信息。【参考方案2】:

我的一位同事发现了这个并且它有效。这不是最好的解决方案,但它确实有效。

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/8c897f8e-2143-450e-a9f4-97d1f8702da7/

编辑:

更好的解决方案...我们使用部署项目,似乎该项目将项目名称指定为虚拟目录路径,除非另有说明。我们打开了我们的部署项目文件并将以下节点更新为适当的虚拟目录名称:

<SourceWebPhysicalPath>..\MyVirtualDirectory</SourceWebPhysicalPath>

【讨论】:

以上是关于WCF 和 ASP.Net 预编译的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC5 视图预编译

IIS 中的简单 asp.net 预编译问题

使用 ms build 预编译 asp.net 视图

如何修复 ASP.NET 错误“文件'nnn.aspx'尚未预编译,无法请求。”?

预编译的 asp.net 网站报错

如何在 ASP.NET Core 2.0 中预编译视图?