2016-03-30 18 views
0

async/awaitを使用しているときにエラーを調べています。ただし、以下のように表示され、行番号は表示されません。asyncで行番号を取得する方法C#

System.UnauthorizedAccessException: Access to the port is denied. 
at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str) 
at System.Threading.Semaphore..ctor(Int32 initialCount, Int32 maximumCount, String name) 
at StorageServiceIntegration.Managers.StorageServiceManager.d__41.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
at StorageServiceIntegration.Managers.StorageServiceManager.d__33.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 
at StorageServiceIntegration.Managers.StorageServiceManager.d__32.MoveNext() 

行番号とコードがどこで失敗したかを表示するにはどうすればよいですか?私は.Net 4.6.1を使用しています

+1

アプリケーションを実行しているユーザーアカウントでセマフォを作成できないため、例外がスローされます。この問題は、[Windows 7で標準ユーザーとしてセマフォを作成できない](http://stackoverflow.com/questions/14530886/cannot-create-a-semaphore-as-standard-user-on-windows-7) 。 – Serge

+0

私の場合ではなく、semaphore.WaitOne()の後にあることとデータベースにログするので、セマフォを作成することができます。 –

+0

'async'は、例外によって返された呼び出しスタックとは何の関係もありません。呼び出しスタックの行番号を表示するには、デバッグシンボルやライブラリのソースコードが必要です。 –

答えて

2

Visual Studioでデバッグモードでビルドしていることを確認してください。

+0

実際には、必要なライブラリのデバッグシンボルです。 StorageServiceIntegrationがデバッグシンボルのない外部DLLである場合、デバッグモードでコンパイルすると行番号は生成されません –

関連する問題