2014-10-10 2 views
0

У нас есть проект Soap Webservice, который использует стороннюю DLL. В Visual Studio, когда я запускаю программу, она работает отлично. Он может найти dll. Но когда я поместил проект в IIS, webservice не может найти dll. здесь приведена часть DLLImport.DLLImport работает в VS, но не в IIS

[DllImport(@"/dll/y1d431_mit.dll", 
     EntryPoint = "Y1DPackG", SetLastError = false, ExactSpelling = true)] 
    private static extern void Y1DPackG(ref int ErrorNumb, ref int ErrorMsgs, 
     string RegCustomer, int RegPassword, int CostOptim, int IgnoreLast, 
     int EffortLev, int ReduceLays, int PrefShort, int DiffStocks, 
     int DiffPieces, int ReusLength, int GapItIt, int GapItEnd, 
     int GapGripEnd, int OptimTime, int IterMult, int LayByMark, 
     int RunMsgMode, int ReservInp2, ref int StockGrLth, ref int StockGrCst, 
     ref short StockGrQty, ref int PartGrLth, ref int PartGrMrkID, ref short PartGrQty, 
     ref int Critsum, ref int Effsum, ref int StockSum, ref int PartSum, 
     ref int LengthSum, ref int WasteSum, ref int CostSum, ref int LastStockNo, 
     ref int LastParts, ref int LastLength, ref int LastWaste, ref int LastCost, 
     ref int PatternSum, ref int LayoutSum, ref int LayoutCuts, ref int ReservOut1, 
     ref int ReservOut2, ref short StockGrNo, ref short PartGrNo, ref short PartStockNo, 
     ref short StockLayNo, ref short StockPatNo, ref short StockParts, ref int StockWaste); 

где IIS ищет DLL-файл в соответствии с инструкцией DLLImport? где я должен поместить файлы dll в соответствии с оператором DLLIMPORT, чтобы IIS мог его найти?

ответ

1

Загрузите Sysinternal бесплатно process monitor. Запустите его прямо перед запуском кода, который выполняет dllimport, и остановите сбор событий после его устранения. Этот инструмент расскажет вам все, что происходит, в том числе, когда IIS начинает его искать. Также он сообщит вам, если вы получаете ошибки разрешений.

Ошибки разрешений становятся вероятными, если это 32-разрядная dll в 64-разрядной системе, потому что dll будет работать через WOW64 и, вероятно, скопирована в каталог WOW64 для выполнения. По умолчанию это не каталог, к которому имеет доступ любая из анонимных учетных записей пользователей Интернета.

Смежные вопросы