Skip to content

Commit 042e4c3

Browse files
authored
Merge pull request #6 from sboukhalfa/master
Prevent throwing an exception if the service is called outside of an OperationContext
2 parents 164da91 + 5ef291c commit 042e4c3

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

MiniProfiler.WCF.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package>
33
<metadata>
44
<id>MiniProfiler.WCF</id>
5-
<version>3.0.12.1-wcffix-005</version>
5+
<version>3.0.12.1-wcffix-006</version>
66
<authors>Marc Gravell, Sam Saffron, Jarrod Dixon</authors>
77
<owners>Marc Gravell, Sam Saffron, Jarrod Dixon</owners>
88
<description>MiniProfiler integration for WCF</description>

StackExchange.Profiling.Wcf/Helpers/WcfOperationContextExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static WcfOperationContextExtension Current
1919
var context = OperationContext.Current;
2020
if (null == context)
2121
{
22-
throw new InvalidOperationException("An attempt was made to access a WCF operation context extension outside of WCF context.");
22+
return null;
2323
}
2424

2525
var extension = context.Extensions.Find<WcfOperationContextExtension>();

StackExchange.Profiling.Wcf/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
[assembly: ComVisible(false)]
1313
[assembly: Guid("a95b0bf2-e9cf-4029-b77a-85b9e66fd3d5")]
1414
[assembly: AssemblyVersion("3.0.12.1")]
15-
[assembly: AssemblyInformationalVersion("3.0.12.1-wcffix-004")]
15+
[assembly: AssemblyInformationalVersion("3.0.12.1-wcffix-006")]

StackExchange.Profiling.Wcf/WcfRequestProfilerProvider.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public override void Stop(bool discardResults)
143143
/// <returns>the mini profiler.</returns>
144144
public override MiniProfiler GetCurrentProfiler()
145145
{
146-
return WcfOperationContextExtension.Current.Items[WCF_CACHE_KEY] as MiniProfiler;
146+
return WcfOperationContextExtension.Current?.Items[WCF_CACHE_KEY] as MiniProfiler;
147147
}
148148

149149
/// <summary>
@@ -189,7 +189,12 @@ private static void EnsureServiceName(MiniProfiler profiler/*, HttpRequest reque
189189
/// <param name="profiler">The profiler.</param>
190190
private void SetCurrentProfiler(MiniProfiler profiler)
191191
{
192-
WcfOperationContextExtension.Current.Items[WCF_CACHE_KEY] = profiler;
192+
var contextExtension = WcfOperationContextExtension.Current;
193+
if (contextExtension == null)
194+
{
195+
return;
196+
}
197+
contextExtension.Items[WCF_CACHE_KEY] = profiler;
193198
}
194199
}
195200
}

0 commit comments

Comments
 (0)