報錯信息:
1
2
3
4
5
6
7
8
9
10
11
|
處理報表時出錯。
對數據集“query”執行查詢失敗。
在嘗試加載程序集 ID 65536 時 Microsoft .NET Framework 出錯。服務器可能資源不足,或者不信任該程序集,因為它的 PERMISSION_SET 設置為 EXTERNAL_ACCESS 或 UNSAFE。請重新運行查詢,或檢查有關的文檔了解如何解決程序集信任問題。有關此錯誤的詳細信息: System.IO
.FileLoadException: 未能加載文件或程序集“ufida.uu.sql.clrlib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一個依賴項。發生與安全有關的錯誤。 (異常來自 HRESULT:0x8013150A) System.IO
.FileLoadException: 在 System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) <br data-filtered=
"filtered"
>在 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) <br data-filtered=
"filtered"
>在 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) <br data-filtered=
"filtered"
>在 System.Reflection.Assembly.Load(String assemblyString) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) <br data-filtered=
"filtered"
>在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() <br data-filtered=
"filtered"
>在 UFSoft.UBF.Util.DataAccess.AbstractDataAccessor.Execute(IDbConnection con, String commandText, DataParamList dataParams, CommandType cmdType) <br data-filtered=
"filtered"
>在 UFSoft.UBF.Util.DataAccess.DataAccessor.RunSP(String sprocName, DataParamList dataParams) <br data-filtered=
"filtered"
>在 UFIDA.UU.GL
.Report.DataCommand.GeneralAndBalanceDataCommand.GetResultTempTalbe1WithSP() <br data-filtered=
"filtered"
>在 UFIDA.UU.GL
.Report.DataCommand.GeneralAndBalanceDataCommand.ProcessData() <br data-filtered=
"filtered"
>在 UFIDA.UU.GL
.Report.DataCommand.GeneralAndBalanceDataCommand.GetOqlString() <br data-filtered=
"filtered"
>在 UFIDA.UBF.Report.App.Data.AbsReportDataCommand.ExecuteDataReader() <br data-filtered=
"filtered"
>在 UFSoft.UBF.Report.Interface.BaseReportDataCommand.InternalExecuteDataReader(String& errorMessage)
|
這數據庫是從其他數據庫還原到本地數據庫的,不少網友說在還原數據庫之后,可以將數據庫的OWNER設置成SA就可以解決
1
|
exec
sp_changedbowner
'sa'
|
實際上並不能解決!
從報錯信息可以看出,服務器不信任該程序集。將數據庫的可信修改為true即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
1.
exec
sp_configure
'show advanced options'
,
'1'
;
Go
reconfigure;
go
exec
sp_configure
'clr enabled'
,
'1'
go
reconfigure;
--如果執行失敗,就用這個RECONFIGURE WITH OVERRIDE;
exec
sp_configure
'show advanced options'
,
'1'
;
go
2.查SID在sys.databases 和sys.server_principals是否一致
SELECT
*
FROM
sys.server_principals;
SELECT
*
FROM
sys.sysdatabases ;
3.查看程序集是否存在
SELECT
*
FROM
sys.assemblies;
SELECT
*
FROM
sys.assembly_files;
4.修改為
ON
ALTER
DATABASE
databasename
SET
TRUSTWORTHY
on
;
5.注意所有者
exec
sp_changedbowner
'sa'
|