【问题标题】:Microsoft.SqlServer.Types with Service Fabric带有 Service Fabric 的 Microsoft.SqlServer.Types
【发布时间】:2017-07-26 09:51:13
【问题描述】:

问题很简单。我将一个 WebApps 项目移至安装了 Microsoft.SqlServer.Types nuget 包的 Service Fabric。现在,当我尝试访问数据库时,我收到以下错误,因为我使用的是空间类型。

“空间类型和函数不适用于此提供程序,因为找不到程序集 'Microsoft.SqlServer.Types' 版本 10 或更高版本。”

我尝试将以下代码行添加到 FabricRuntime 创建实例的类中,但这没有用。

SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

您的帮助将不胜感激,如果您需要我提供更多信息,请告诉我。

【问题讨论】:

    标签: asp.net .net sql-server entity-framework


    【解决方案1】:

    您确实需要这行代码,但对于 asp.net 应用程序,它应该略有不同: 对于 Asp.net 网站,Default.aspx.cs:

    public partial class _Default : System.Web.UI.Page
    {
        static bool _isSqlTypesLoaded = false;
    
        public _Default()
        {
            if (!_isSqlTypesLoaded)
            {
                SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~"));
                _isSqlTypesLoaded = true;
            }
    
        }
    }
    

    对于 Web 应用程序,在 Global.asax.cs 中:

    SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
    

    您还需要在 web.config 中创建以下绑定重定向:

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    

    Here 是唯一对我有帮助的话题的讨论。

    更新:Here 是一篇博文,它通过 3 个步骤提供了详细描述的解决方案。虽然,第三步对我不起作用,我必须按照上述方法创建绑定。

    【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2019-02-18
    • 2017-06-19
    • 2019-11-30
    • 2018-07-26
    • 2017-01-14
    • 1970-01-01
    • 2016-04-30
    • 2015-12-24
    相关资源
    最近更新 更多