无法打开系统程序集microsoft.sqlserver.types.dll

时间:2015-08-28 14:04:54

标签: asp.net sql-server .net-assembly rds sqlgeography

我们正在将服务器迁移到AWS。我们已经设置了一个IIS Web服务器并在RDS SQL Server 2012上移动了我们的数据库副本。在asp.net网站收到此错误之前,所有内容都运行了几天:

  

无法打开系统程序集' C:\ Windows \ assembly \ GAC_MSIL \ microsoft.sqlserver.types \ 11.0.0.0__89845dcd8080cc91 \ microsoft.sqlserver.types.dll'& #39 ;:   32(进程无法访问该文件,因为它正被使用   另一个过程。)选择@@ IDENTITY作为last_insert_id

几秒钟后,我的代码会自动重试运行查询并运行。但是,当我们在新环境中拥有真正的流量时,我仍然担心会再次发生这种情况。

我能在网上找到的唯一相关帮助是此页https://support.microsoft.com/en-us/kb/3064292 这似乎意味着我们的RDS没有最新的服务包,但它实际上与我们的生产数据库服务器(11.0.5058.0 SP2标准版(64位))完全相同。

不确定这与web.config <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral"/> <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0"/> 中的 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "22.0.1" defaultConfig { applicationId "ru.o2genum.coregame" minSdkVersion 3 targetSdkVersion 8 } dependencies { compile 'com.google.android.gms:play-services-ads:7.8.0' compile 'com.android.support:support-v4:20.+' compile 'com.google.android.gms:play-services:+' //compile 'com.android.support:support-v4:20.0.0' //compile 'com.google.android.gms:play-services:5.0.77' } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } 是否相关:

Error:(24, 5) uses-sdk:minSdkVersion 3 cannot be smaller than version 9 declared in library C:\Users\Osama\StudioProjects\CoreGame-master\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-ads\7.8.0\AndroidManifest.xml

任何帮助/提示都非常受欢迎,因为&#34;大动作&#34;未来几天计划到AWS,我们的压力水平现在太高了!

1 个答案:

答案 0 :(得分:1)

我们终于设法摆脱了这个错误。 我们认为发生的事情是SQL Server数据库没有设置Maximum server memory所以它正在占用所有可用内存。因此,dll无法加载到内存中,并且经常被多个数据库线程访问。

设置最大值内存到[总服务器内存 - 2gb]这样的问题就会消失(并且还会大大提高数据库性能)

这只是我们的猜测所以我不会接受我的回答,直到有人确认这是正确的或提出更好的解释。