解决:公共语言运行时检测到无效的程序
情況描述,醫(yī)院HIS系統(tǒng)用的是我們公司的靜配中心采用的是第三方的,需要提供一個(gè)WebService服務(wù)給第三方調(diào)用執(zhí)行我們的發(fā)藥扣庫(kù)流程。昨天我接手了一個(gè)移植來的半成品WebService需要進(jìn)行調(diào)整,WebService自身部分都調(diào)通了之后進(jìn)行調(diào)試,結(jié)果每次執(zhí)行到最后需要調(diào)用一個(gè)HIS系統(tǒng)中包含發(fā)藥流程的dll(HISFC.BizProcess.Integrate.dll)的時(shí)候就拋出異常“公共語言運(yùn)行時(shí)檢測(cè)到無效的程序”,簡(jiǎn)單查了一下看這個(gè)問題其實(shí)是編譯的問題,不能算是代碼本身的問題。
后來經(jīng)過仔細(xì)排查發(fā)現(xiàn)原因是WebService和發(fā)藥的dll都有引用同一個(gè)名稱的dll(FrameWork.dll),但是兩個(gè)地方引用的FrameWork其實(shí)是不一樣的!這個(gè)FrameWork.dll都是公司自己編寫的底層,只不過客戶端使用的是一個(gè)版本(簡(jiǎn)稱客戶端版),WebService使用的是另一個(gè)版本(簡(jiǎn)稱Web版),然后在WebService開發(fā)使用中都是用的Web版,但是在編譯Integrate.dll的時(shí)候都是用的客戶端版,本來兩個(gè)地方自己用自己的都沒問題,但是現(xiàn)在WebService中引用了Integrate.dll而Integrate.dll在被調(diào)用的方法中又用了FrameWork,結(jié)果此FrameWork非彼FrameWork結(jié)果就異常了。
PS:如果WebService調(diào)用的Integrate.dll的方法中沒用到FrameWork但是Integrate.dll的其他沒被WebService用到的方法中用了FrameWork那么也不會(huì)有問題(簡(jiǎn)單來說就是只要確保調(diào)用的部分沒有歧義就行)。
?
總結(jié)
以上是生活随笔為你收集整理的解决:公共语言运行时检测到无效的程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery根据属性查询元素
- 下一篇: 请问哪位有EDUP EP-6501无线网