我被要求在ASP.Net應用程序中讀取SAS中的一些數據。我有一個Windows窗體應用程序的工作代碼。然而,相同的代碼不是工作在ASP.Net但是我可以試試它。具有相同引用的乾淨項目始終失敗。從.Net中的SAS數據源讀取數據
這就是我已經得到了連接:
SASWorkspaceManager.WorkspaceManager oWorkspaceManager
= new SASWorkspaceManager.WorkspaceManager();
string xmlInfo = "";
SASWorkspaceManager.ServerDef oServerDef = new SASWorkspaceManager.ServerDef();
oServerDef.MachineDNSName = "server";
oServerDef.Protocol = SASWorkspaceManager.Protocols.ProtocolBridge;
oServerDef.Port = <port>;
oServerDef.BridgeEncryptionAlgorithm = "SASProprietary";
oServerDef.BridgeEncryptionLevel =
SASWorkspaceManager.EncryptionLevels.EncryptUserAndPassword;
SAS.Workspace oSASWorkspace =
oWorkspaceManager.Workspaces.CreateWorkspaceByServer ("",
SASWorkspaceManager.Visibility.VisibilityProcess, oServerDef, "user",
"pass", out xmlInfo);
oSASWorkspace.LanguageService.Submit(
"proc means data = sashelp.class;output out=meanout;run;");
OleDbDataAdapter oOleDbDataAdapter = new OleDbDataAdapter
("select * from work.meanout",
"provider=sas.iomprovider.1; SAS Workspace ID=" +
oSASWorkspace.UniqueIdentifier);
DataSet oDS = new DataSet();
oOleDbDataAdapter.Fill(oDS, "sasdata");
oWorkspaceManager.Workspaces.RemoveWorkspaceByUUID(
oSASWorkspace.UniqueIdentifier);
oSASWorkspace.Close();
只需它未能與 內部異常初始化數據適配器「試圖讀取或寫入保護內存這通常是一個跡象其他內存已損壞。「如果我將Trust = Full添加到web.config文件中,則填充數據適配器時會直接出現相同的錯誤。我們可以證明,通過工作區管理器執行SAS命令正在工作,這是在我們嘗試讀取結果時發現它在初始化連接到SAS時失敗的結果。無論出於何種原因,這似乎是無處不在引爲如何做到這一點只是不斷通過時運行ASP.Net引發錯誤的片段
OleDbDataAdapter oOleDbDataAdapter = new OleDbDataAdapter
(<Read Command>,
"provider=sas.iomprovider.1; SAS Workspace ID=" +
oSASWorkspace.UniqueIdentifier);
。
我猜這是一個用戶權限問題,它不喜歡在IIS用戶下運行,但不知道授予它的權限。有些SAS文檔在某處或其他地方(抱歉,找不到)建議確保用戶有權限,但ASPNET用戶可以完全訪問開發機器上的整個SAS程序目錄。有誰知道還有什麼我可能需要設置?謝謝。
版本8,對不起。 – eftpotrm 2010-01-13 23:47:55