【Asp.net】網站先行編譯到SERVER的問題紀錄
/
0 Comments
情況:
網站內加入一支web service,本機測試都正常(架在IIS上測試,網域內的IP都能看到web service抓的資料),但發行後複製到server架在IIS上,web service就是抓不到值,直接在IIS瀏覽asmx果然是出現
(檔案 '/XXXX.asmx' 尚未完成先行編譯,因此無法要求此檔案 )
的錯誤訊息頁面。
解決辦法:
使用aspnet_compiler作編譯(原本是用vs2010發行網站)
在命令提示字元:
- 先進入到aspnet_compiler所在位置
執行 cd\Windows\Microsoft.NET\Framework\v2.0.50727
差別在於 ex: \Framework\v2.0.50727
\Framework64\v4.0.30319
2. 執行exe
aspnet_compiler -v / -p "要編譯的檔案路徑" 編譯後的位置
ex: aspnet_compiler -v / -p "C:\Users\Administrator\Desktop\XXX" c:\temp
編譯完成後將資料複製到架站位置資料夾就解決了
ps:
<system.web>
<!--讓service能讓外部呼叫-->
<webServices>
<protocols>
<!--<add name="HttpGet"/>-->
<add name="HttpPost"/>
</protocols>
</webServices>
<system.web>
<!--讓service能讓外部呼叫-->
<webServices>
<protocols>
<!--<add name="HttpGet"/>-->
<add name="HttpPost"/>
</protocols>
</webServices>
參考資料
bonus:
動態叫用web service