バックグラウンド:
.NET Framework 2.0、C# ESRI ArcGis 10.1 64 ビット Windows Server 2008 R2。
- マップ用のカスタム モデル システムを実行する ESRI コンポーネントを使用するサードパーティ プログラム (簡単にするためにシステム A) があります。
- システム A も独自のライセンス システムを使用しています。
- ユーザーが表示できるように、システム A から Web にデータをプルしています。
- システムは次のとおりです。 Web <-> WebService (.NET-Remoting 2.0 を使用) <-> WindowsService.exe <-> DataFetcherStub.dll <-> DataFetcher.dll <-> システム A
問題:
ArcGIS 9.3 から ArcGIS 10.0 まででこれを実行しても問題はなく、以前のバージョンのシステム A.
システム A のプロバイダーは現在、10.0 から .NET 相互運用機能を使用して、これを ArcGIS 10.1 にアップグレードしています。これも行いましたが、.NET-Remoting -> WindowsService を使用しても機能しなくなりました。
DataFetcherStub を使用して EXE を実行すると、すべて問題ありません。Windows サービスを実行すると、システム A 内でクラッシュします。
Faulting application name: windows_service.exe, version: 1.0.4802.40962, time stamp: 0x51293874
Faulting module name: AfCore_libFNP.dll_unloaded, version: 0.0.0.0, time stamp: 0x4f920360
Exception code: 0xc0000005
Fault offset: 0x619fe9b0
Faulting process id: 0x14c0
Faulting application start time: 0x01ce120f632c1f0e
Faulting application path: D:\path\windows_service.exe
Faulting module path: AfCore_libFNP.dll
Report Id: a41b42dc-7e02-11e2-8e56-00155d0a11a9
ArcGIS でライセンスを取得し、Windows サービスを実行しているときに、このエラーが発生した人はいますか?
ESRI フォーラムにスレッドがありますが、これを解決する手がかりはありませんか?
http://forums.arcgis.com/threads/74546-Product-Licensing-in-Scheduled-Batch
我々が最後に発見した問題を修正するのに約1年かかったので、ベンダーにアプローチすることは選択肢ではありません. 彼らが最終的にそれが彼らのバグであるという証拠を得る前に、私たちに9か月間指を向けていました.彼らもこれと戦うと確信しています. 回避策を講じることができれば、より迅速です。
Windows サービスからこれを実行しようとしました。
1) System.Threading.ThreadPool.QueueUserWorkItem(o => FireAndForgetProcess()); 運がない
2) Process.Start("FireAndForgetMe.exe") 運が悪い
外部exeをWindowsサービスから「解放」し、それ自体で開始されたかのように振る舞う別のアプローチを誰でも与えることができますか?