在Azure移动服务上找不到程序集

在Azure移动服务上找不到程序集,azure,fluent-nhibernate,azure-mobile-services,Azure,Fluent Nhibernate,Azure Mobile Services,我有一个Azure移动服务项目,它依赖于另一个(持久性)项目,该项目引用了FluentNHibernate。在本地,一切都在Release和Debug模式下正常运行。发布该项目似乎是成功的(蓝色笑脸)。当我发出请求时,问题就开始了,其中使用了FluentNHibernate。我收到以下错误消息: 找不到程序集“FluentNHibernate,版本=2.0.3.0,区域性=中性,PublicKeyToken=null” 我已经尝试了很多东西: 重新安装软件包 一种新的普通移动服务 在主项目的W

我有一个Azure
移动服务
项目,它依赖于另一个(持久性)项目,该项目引用了
FluentNHibernate
。在本地,一切都在
Release
Debug
模式下正常运行。发布该项目似乎是成功的(蓝色笑脸)。当我发出请求时,问题就开始了,其中使用了
FluentNHibernate
。我收到以下错误消息:

找不到程序集“FluentNHibernate,版本=2.0.3.0,区域性=中性,PublicKeyToken=null”

我已经尝试了很多东西:

  • 重新安装软件包
  • 一种新的普通移动服务
  • 在主项目的
    Web.config
    中添加
    dependentAssembly
    ,在持久性项目中添加
    App.config
让我有点困惑的是以下事实:当我更改
FluentNHibernate
包的版本时,我可以在发布预览窗口中看到此dll不会更新

我真的不确定这个问题是否取决于这个特定的包(
FluentNHibernate
)。例如,什么意思:
PublicKeyToken=null

我还可以尝试什么使服务在云中运行?

下面的代码适用于我的解决方案。它将处理程序连接到AppDomain的AssemblyResolve事件,如果找不到程序集,将引发该事件。在本例中,我告诉它检查当前加载的程序集,如果存在匹配项,则返回一个,FluentNHibernate应该有匹配项。尝试将其作为WebApiConfig.Register中的第一行

public static void Register()
{
    AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            return AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.FullName == args.Name).FirstOrDefault();
        };

    // the rest of WebApiConfig.Register...
}

下面的代码适用于我的解决方案。它将处理程序连接到AppDomain的AssemblyResolve事件,如果找不到程序集,将引发该事件。在本例中,我告诉它检查当前加载的程序集,如果存在匹配项,则返回一个,FluentNHibernate应该有匹配项。尝试将其作为WebApiConfig.Register中的第一行

public static void Register()
{
    AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            return AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.FullName == args.Name).FirstOrDefault();
        };

    // the rest of WebApiConfig.Register...
}

下面的代码适用于我的解决方案。它将处理程序连接到AppDomain的AssemblyResolve事件,如果找不到程序集,将引发该事件。在本例中,我告诉它检查当前加载的程序集,如果存在匹配项,则返回一个,FluentNHibernate应该有匹配项。尝试将其作为WebApiConfig.Register中的第一行

public static void Register()
{
    AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            return AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.FullName == args.Name).FirstOrDefault();
        };

    // the rest of WebApiConfig.Register...
}

下面的代码适用于我的解决方案。它将处理程序连接到AppDomain的AssemblyResolve事件,如果找不到程序集,将引发该事件。在本例中,我告诉它检查当前加载的程序集,如果存在匹配项,则返回一个,FluentNHibernate应该有匹配项。尝试将其作为WebApiConfig.Register中的第一行

public static void Register()
{
    AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            return AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.FullName == args.Name).FirstOrDefault();
        };

    // the rest of WebApiConfig.Register...
}


Web.config
dependentAssembly
部分,您不需要任何条目,因此我将删除这些条目
PublicKeyToken=null
表示程序集没有签名,这很好。我能够做一个非常简单的重新编程,并正确加载程序集,因此可能会发生更复杂的事情。当您转到{yoursite}.scm.azure-mobile.net时,单击调试控制台
->
CMD
并转到
site\wwwroot\bin
,您在那里看到FluentNHibernate.dll了吗?如果是这样,您可以在本地下载,它是什么版本?我还不知道SCM仪表板。非常感谢您的建议!但是dll在那里,并且有正确的版本。我只是尝试将我所有的NHibernate交互移动到一个单独的引用程序集中,看看是否可以重新编程,但无法。您在哪里看到错误消息?它是否在门户日志中?如果是这样的话,你能(a)分享完整的错误信息吗?如果你还没有(b)尝试创建一个新的临时移动服务并在那里发布你的项目,看看它是否也在那里发生(c)请尝试通过SCM仪表板显式删除FluentNHibernate.dll,并再次检查“发布预览”窗口,以查找延迟响应,但我无法回答过去3天的问题。经过多次尝试后,我可以找到导致异常的位:使用
子类映射
这用于将基类映射到一种基表:。在我需要找到不同的解决方案之前,您能检查一下是否可以重现此错误吗?顺便说一句:谢谢你花这么多时间!好吧,我现在看到了这个例外。我得深入调查,看看原因——我找到任何东西后会报告的。感谢您的特殊修改。在
Web.config
dependentAssembly
部分,您不需要任何条目,因此我将删除这些条目
PublicKeyToken=null
表示程序集没有签名,这很好。我能够做一个非常简单的重新编程,并正确加载程序集,因此可能会发生更复杂的事情。当您转到{yoursite}.scm.azure-mobile.net时,单击调试控制台
->
CMD
并转到
site\wwwroot\bin
,您在那里看到FluentNHibernate.dll了吗?如果是这样,您可以在本地下载,它是什么版本?我还不知道SCM仪表板。非常感谢您的建议!但是dll在那里,并且有正确的版本。我只是尝试将我所有的NHibernate交互移动到一个单独的引用程序集中,看看是否可以重新编程,但无法。您在哪里看到错误消息?它是否在门户日志中?如果是这样的话,你能(a)分享完整的错误信息吗?如果你还没有(b)尝试创建一个新的临时移动服务并在那里发布你的项目,看看它是否也在那里发生(c)请尝试通过SCM仪表板显式删除FluentNHibernate.dll,并再次检查“发布预览”窗口,以查找延迟响应,但我无法回答过去3天的问题。经过多次尝试后,我可以找到导致异常的位:使用
子类映射
这用于将基类映射到一种基表:。在我需要找到一个不同的