2009-08-19 46 views
2

好吧,我創建了一個.net程序集,它可以在我的asp.net網站上正常工作。我現在想將它作爲COM託管,因此我可以在舊的傳統ASP網站上使用它。它不錯,但它不會讀取配置文件中的appsettings。我的.net程序集在作爲COM託管時從何處讀取其配置?

我認爲它應該從我在regasm註冊我的程序集以及.dll所在的文件夾中讀取它。我試圖將配置文件複製到兩個額外的文件(如果它從除了「assembly-file-name」+之外的另一個命名文件讀取。config 這兩個文件是app.config和application.config - 它似乎沒有從其中的任何閱讀。

在哪裏我的.NET程序集讀取時爲COM託管它的配置?

+0

主機作爲COM在COM +(組件服務)? – 2009-08-19 11:02:28

+0

錯誤:如COM +(組件服務)中的「將其作爲COM託管」? – 2009-08-19 11:03:19

+0

我不明白阿爾弗雷德?我只需要能夠通過Server.CreateObject訪問它 - 它與傳統asp站點位於同一臺服務器上,因此它不必是COM + - 即使我猜這是所有COM對象的名稱 - 即使他們沒有分發.. – 2009-08-19 11:07:53

回答

1

如果通過COM表示一個COM應用程序,那麼你應該把你的配置放在一個以EXE命名的文件中。 YourApp.Exe - > YourApp.exe.config

如果COM你的意思是COM +,然後看看http://blogs.msdn.com/heikkiri/archive/2005/11/10/491568.aspx

+0

我認爲你需要相信這一點 - 我發現它的地方,它可能已經是你的網站 - 反正它解釋完美:) – 2009-08-19 11:09:53

0

Sombody糾正我,如果我錯了,但我不認爲一個DLL讀取配置文件即使你技術上可以也爲DLL項目創建一個配置文件(使用項目屬性),我不認爲你應該配置一個這樣的DLL,我不認爲框架支持那

有兩種方法現在:

  1. 有來電者通過相應的設置值的對象作爲參數
  2. 構建一個讀取設置自身的方法和創建對象後調用該方法。

編輯
要檢查,你應該命名爲配置文件application-name.config.xml,像一個WebForms的應用。但正如我所說,我懷疑它會工作...

+0

Dog nammit,我希望你錯了:) – 2009-08-19 10:48:50

+0

我知道以下內容:創建包含類型化數據集的.NET DLL時,連接字符串將存儲在DLL app.config中。然後,您可以將它們從DLL中的app.config複製到應用程序的app.config中,只要您還複製名稱空間信息等,就可以使用它們。但是,對於傳統的ASP應用程序,我猜不到。 。 – 2009-08-19 10:53:27

+0

該框架支持它。在運行時,DLL在EXE配置文件上搜索它的配置。 – 2009-08-19 11:01:29

0

好吧,我找到了一個解決方案,讓我開心。

我最終在組件服務中託管COM對象。在包上我選擇了屬性並選擇了激活選項卡,在那裏我在「應用程序根目錄」中輸入了我的配置文件的位置。現在,使其工作,我不得不重新命名我的配置文件,以application.config和我還得設法創造在同一位置的新文件名爲application.manifest數據如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
</assembly> 

這實際上解決了有「DLL」讀配置文件的問題 - 實際上,因爲組件服務是主機(代替exe /網站)它確定位置/配置。

Woop - 並感謝輸入的人 - 我沒有想到Thorsten之前提到的問題。

相關問題