問題タブ [servicedcomponent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
572 参照

datetime - .Net / C# の DateTime フィールドが、リモートの MarshalByRefObject から ServicedComponent に渡すと、夏時間の変更である日付が変更される

SingleCall として構成されているリモートでホストされているオブジェクトがあります。RemotingConfiguration.Configure(remotingConfigPath, false) として構成されている古いスタイルの .Net リモーティング オブジェクトです。そのオブジェクトは問題なく DataSet の DateTime フィールドを受け取り、それを [AutoComplete] としてマークされている ServicedComponent の (COM+) メソッドに渡します。呼び出しの時点まで、フィールドは問題ありません。[AutoComplete] メソッドが DateTime を受け取るとすぐに、1 時間シフトされます。.Net フレームワークによって確実に移行されます。間にユーザーコードはありません。シフトは、夏時間の変更日である特定の日付で発生すると思います。

AppDomain を通過するときに発生する日付のシリアル化を伴うものでなければなりません。Like Serviced コンポーネントは独自のタイム ゾーンを使用し、受信した日付をそのゾーンに変換します。しかし奇妙なことに、.Net リモート処理用に構成せずに ServicedComponent を直接呼び出すと、日付の変更は発生しません。ServicedComponent は処理中です。クライアントとサーバーは同じマシンにあり、TimeZone GMT+2 と地域設定がトルコ/トルコに設定され、クライアント側の CurrentUICulture と CurrentCulture の両方で .net カルチャが tr-TR に設定されています。問題の解決にご協力ください よろしくお願いします


0 投票する
1 に答える
69 参照

c# - サービス コンポーネント インターフェイスが表示されない

SQL Server データベースに保存されている電子メールにアクセスするためのサービス コンポーネントを作成しました。public メソッドは 1 つしかありません。この質問に記載されている属性を適用しました。

ローカル コンポーネント サービスでコンポーネントを開くとき。ReadEmail インターフェイスが表示されます (バージョン: コンポーネント サービスの 6.2)

しかし、サーバーで開こうとするとできません。 (コンポーネント サービスのバージョン: 2001.12.4720.3959)

.NET 3.5 を使用しています

異なるバージョンのコンポーネント サービスに何か関係があるのではないかと思われますが、他のコンポーネントがあり、それらは正しく表示されます

0 投票する
1 に答える
776 参照

c# - サービス コンポーネントのソース コードにステップ インしてデバッグすることはできません

ServicedComponent を継承する C# で COM+ コンポーネントを開発しました。これがどのように見えるかです:

このコンポーネントを呼び出す別のテスト プロジェクトがあります。

2 番目のブレークポイントに到達できません。これは、VS 2012 に切り替える前に機能していました。奇妙なことに、2012 に切り替えた後、VS 2010 でも機能しなくなりました。

すでに試しましたが、

  • プロセスにアタッチ
  • デバッグ設定で「マイコードのみを有効にする」のチェックを外した

誰かここから方向を教えてもらえますか?

更新 1

Mike から提供されたリンクから、DLL と PDB ファイルが存在する同じフォルダーで DLL の symchk を試しました。PDB が一致しないか見つからないというエラーで失敗します。このエラーを解決する方法がわかりません。

0 投票する
0 に答える
162 参照

.net - イベント処理を備えた .Net サービス コンポーネント

プロセス外の .Net DLL を作成しようとしています。サンプルコードを使用して、プロセス外の COM DLL を作成できました。ただし、イベント処理の実装中にいくつかの問題に直面しています。

コードに従って、次のイベントがコンポーネントによって公開されます。

VB.Net フォーム アプリケーションでそのイベントを処理すると、例外がスローされます。詳細は次のとおりです。

例外の詳細:

スタックトレース:

System.RuntimeMethodHandle.SerializationInvoke (IRuntimeMethodInfo メソッド、オブジェクト ターゲット、SerializationInfo 情報、StreamingContext& コンテキスト) で System.Runtime.Serialization.ObjectManager.CompleteISerializableObject (オブジェクト obj、SerializationInfo 情報、StreamingContext コンテキスト) で System.Runtime.Serialization.ObjectManager.FixupSpecialObject ( System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at System.EnterpriseServices. System.EnterpriseServices の System.EnterpriseServices.ComponentServices.ConvertToMessage(String s、オブジェクト tp) の ComponentSerializer.UnmarshalFromBuffer(Byte[] b、オブジェクト tp)。System.EnterpriseServices.ServicedComponent.System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s) の ServicedComponent.RemoteDispatchHelper(String s, Boolean& failed) System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s) の System.EnterpriseServices.RemoteServicedComponentProxy.Invoke(IMessage D:\Meridia\MeridiaAPI\COMPlusServices\TestApp の TestApp.modMain.Main() で\Module1.vb:34行目System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s) の System.EnterpriseServices.RemoteServicedComponentProxy.Invoke(IMessage reqMsg) の RemoteDispatchNotAutoDone(String s) System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData、Int32 型) の VBServicedComponent .SimpleObject.add_FloatPropertyChanging(FloatPropertyChangingEventHandler obj) at TestApp.modMain.Main() in D:\Meridia\MeridiaAPI\COMPlusServices\TestApp\Module1.vb:line 34System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(String s) の System.EnterpriseServices.RemoteServicedComponentProxy.Invoke(IMessage reqMsg) の RemoteDispatchNotAutoDone(String s) System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData、Int32 型) の VBServicedComponent .SimpleObject.add_FloatPropertyChanging(FloatPropertyChangingEventHandler obj) at TestApp.modMain.Main() in D:\Meridia\MeridiaAPI\COMPlusServices\TestApp\Module1.vb:line 34add_FloatPropertyChanging(FloatPropertyChangingEventHandler obj) at TestApp.modMain.Main() in D:\Meridia\MeridiaAPI\COMPlusServices\TestApp\Module1.vb:line 34add_FloatPropertyChanging(FloatPropertyChangingEventHandler obj) at TestApp.modMain.Main() in D:\Meridia\MeridiaAPI\COMPlusServices\TestApp\Module1.vb:line 34

内部例外:

スタックトレース:

System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName、Evidence assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、Boolean throwOnFileNotFound、Boolean forIntrospection、Boolean suppressSecurityChecks) で System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef、Evidence assemblySecurity 、RuntimeAssembly reqAssembly、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、Boolean throwOnFileNotFound、System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、Boolean forIntrospection) で System.Reflection.RuntimeAssembly.RuntimeAssembly.RuntimeAssembly.InternalLoad InternalLoad(String assemblyString, 証拠 assemblySecurity,System.Reflection.MemberInfoSerializationHolder..ctor(SerializationInfo 情報、StreamingContext コンテキスト) で System.Runtime.Serialization.FormatterServices.LoadAssemblyFromString(String assemblyName) で System.Reflection.Assembly.Load(String assemblyString) で StackCrawlMark& stackMark、Boolean forIntrospection)

イベントの処理中に TestApp の終了時に欠けているものはありますか? はいの場合、そのようなイベントを処理する適切な方法は何ですか?

前もって感謝します。