0

我有一个使用自定义DomainContextGenerator和自定义的 Silverlight 应用程序EntityGenerator

[DomainServiceClientCodeGenerator("MainCodeGenerator", "C#")]
public class HrCodeGenerator : CSharpClientCodeGenerator
{
    protected override EntityGenerator EntityGenerator
    {
        get { return new HrEntityGenerator(); }
    }

    protected override DomainContextGenerator DomainContextGenerator
    {
        get { return new HrDomainContextGenerator(); }
    }
}

此类和引用的生成器包含在 Silverlight 应用程序的宿主项目引用的类库中。

在 VisualStudio 2012 中启动应用程序时一切正常,当我在浏览器中打开http://localhost:12345/My-Namespace-MyService.svc时,我可以看到服务的登录页面。将应用程序部署到 IIS 时,.svc 文件的即时生成失败,打开http://dev.example.com/My-Namespace-MyService.svc时,我只收到 HTTP 404。

从项目中删除HrCodeGenerator-class 后(删除DomainServiceClientCodeGeneratorAttribute不会做的伎俩),一切正常。

你对它为什么会这样以及我能做些什么来防止这种情况发生有任何暗示吗?

4

1 回答 1

0

我终于解决了这个问题。

负责客户端代码生成的类与服务本身位于同一个库中。我将这些类移动到部署到服务器的 Web 应用程序项目中。

我仍然不明白仅在编译时执行并且仅影响应用程序客户端的代码如何可能影响应用程序服务器端的运行时行为。我也不明白为什么将组件移动到另一个项目可以解决问题。

但正如我的一位同事所说:“有时工程学与魔法无法区分……”

于 2013-05-16T09:05:23.217 回答