WebServer(ASMX)服務程序網站的編寫簡單總結。
WebServer中遇到的問題
編寫WebServer程序VS運行調試時如果出現
System.Data.OracleClient.OracleException: ORA-06413: 連接未打開。 這個是因為用OraOle驅動來訪問Oracle數據庫時,所在程序的文件夾,名字的最后不能為")"或者“--”這些字符。
VS2013在windows7 64位版本下安裝時,默認有個program files ( x86 ) ,就是這個“()”引起的;
修改VS2013的安裝目錄,則在From程序中新建數據源,測試通過了;
但是新建web程序,手寫連接數據庫,運行,仍然提示“ORA-06413: 連接未打開”;
原來在項目中運行web程序,默認是使用vs內置web服務器(develop server),而這個內置服務器的程序被安裝在了c:/program files(x86)/common files/ 下面,這里也用到了"(",因此造成了錯誤。
但是目前也沒有找到在安裝時能夠修改這個內置server的安裝路徑的地方。
所以這里只用了一個方法繞開內置server。那就是使用本機IIS來調試程序。在解決方案中,選中web項目點右鍵選屬性,在web標簽下可以把調試服務器該為本機iis。這是再調試web程序,連接數據庫成功了。
把程序放在windows 2008 R2 64bit的服務器上,處理Excel時出現上面的錯誤。
解決方法,是到服務器的打開IIS管理器。go to Application Pool,找到對應站點的池。右擊Advanced setting... 參考下圖,把Enable 32-Bit Application 設為由False 為True。
其他程序調用發布后的WebServer函數程序:
在已經知道其URL地址的情況下,
在Windows開始菜單中找到 Visual Studio Command Prompt。然后再里面輸入指令:
wsdl http:// 你的 WSDL 地址,就可以在 c:\... 目錄下生成一個 .cs 文件。把這個文件復制到你的項目中即可。
同時你還可以修改 cs 的代碼。把URL 參數開放出來。可以通過讀取配置。
如果出現
你可以在 URL 后加上 ?wsdl 試試。確認 這個 URL 能在瀏覽器打開。
WSDL可以要求內部人員另存為把XML發給你。你在本地用 wsdl D:\xxxx.wsdl 這樣也可以生成cs文件。
還有個辦法更麻煩些。調用 WebRequest,發送 POST 請求給這個URL。你查看本地wsdl時候,在描述內容上有寫到這個。