Im in trouble.
I have made a windowsservice that connect to differenct webservices.
In this process data is collected and saved in our MSSQL database.
Now when my service has been running for about 8-10 hours, then it suddently dumps due to System.OutOfMemoryException Stack.
How am I able/supposed to analyse what goes wrong?
I hope that one or more of you clever guys, can help me - because Im stuck with a unhappy boss :-( .
If you think - or know how - that I can deliver more relevant information, then please let me know.
Dump from eventviewer below:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name=".NET Runtime" />
<EventID Qualifiers="0">1026</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2016-06-09T14:52:16.000000000Z" />
<EventRecordID>1941389</EventRecordID>
<Channel>Application</Channel>
<Computer>XYZ1234.intern.xyz.dk</Computer>
<Security />
</System>
- <EventData>
<Data>Program: windowsservice.exe Framework-version: v4.0.30319 Description: This proces was terminated due to an unhandled exception. Exceptioninformation: System.OutOfMemoryException Stak: ved System.Threading.ThreadPool.QueueUserWorkItemHelper(System.Threading.WaitCallback, System.Object, System.Threading.StackCrawlMark ByRef, Boolean) ved System.Threading.ThreadPool.UnsafeQueueUserWorkItem(System.Threading.WaitCallback, System.Object) ved System.Threading.TimerQueue.QueueTimerCompletion(System.Threading.TimerQueueTimer) ved System.Threading.TimerQueue.FireNextTimers() ved System.Threading.TimerQueue.AppDomainTimerCallback()</Data>
</EventData>
</Event>
Thanks in advance.
Related
On my developer machine, amongst my 10 websites and their respective application pools, three of them are very frequently getting setted to startMode = Always running.
I have to reset them to OnDemand regularly and I cannot find the root cause of this.
Apps are coded in C# using .Net5 and hosted on IIS 10
Below is an exemple log from the Event Logs showing the change
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-IIS-Configuration" Guid="{dc0b8e51-4863-407a-bc3c-1b479b2978ac}" />
<EventID>29</EventID>
<Version>0</Version>
<Level>5</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x4000000000000000</Keywords>
<TimeCreated SystemTime="2022-06-20T15:25:46.2192842Z" />
<EventRecordID>5</EventRecordID>
<Correlation />
<Execution ProcessID="10120" ThreadID="10800" />
<Channel>Microsoft-IIS-Configuration/Operational</Channel>
<Computer>LAP-PLS</Computer>
<Security UserID="S-1-5-21-2179824267-3666241482-379869353-1001" />
</System>
<EventData>
<Data Name="PhysicalPath">\\?\C:\WINDOWS\system32\inetsrv\config\applicationHost.config</Data>
<Data Name="ConfigPath">MACHINE/WEBROOT/APPHOST</Data>
<Data Name="EffectiveLocationPath" />
<Data Name="Configuration">/system.applicationHost/applicationPools/add[#name="XXXX"]/#startMode</Data>
<Data Name="EditOperationType">3</Data>
<Data Name="OldValue">OnDemand</Data>
<Data Name="NewValue">AlwaysRunning</Data>
</EventData>
</Event>
This is driving me crazy and help would me much appreciated
Thanks,
I have an interesting error while using Serilog SelfLog. The error is:
Application: XXX.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.IOException
at System.IO.__Error.WinIOError(Int32, System.String)
at System.IO.FileStream.Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean)
at System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, Int32, System.IO.FileOptions, System.String, Boolean, Boolean, Boolean)
at System.IO.StreamWriter.CreateFile(System.String, Boolean, Boolean)
at System.IO.StreamWriter..ctor(System.String, Boolean, System.Text.Encoding, Int32, Boolean)
at System.IO.StreamWriter..ctor(System.String, Boolean, System.Text.Encoding)
at System.IO.File.InternalAppendAllText(System.String, System.String, System.Text.Encoding)
at Serilog.Debugging.SelfLog.WriteLine(System.String, System.Object, System.Object, System.Object)
at Serilog.Sinks.PeriodicBatching.PeriodicBatchingSink+<OnTick>d__16.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Serilog.Sinks.PeriodicBatching.PortableTimer+<OnTick>d__8.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
I do not have an idea what happens. I have .Net framework 4.6.1, Serilog version 2.9.0 and I cannot produce the error again.
Please Can you help me to describe the error? Why did I get the error? Do you know any solutions for this error?
I use libraries below:
Serilog v2.9.0
Serilog.Enrichers.Context v2.4.0
Serilog.Extensions.Logging v2.0.4
Serilog.Settings.AppSettings v2.2.2
Serilog.Sinks.Console v3.1.1
Serilog.Sinks.File v4.1.0
Serilog.Sinks.Http v5.2.1
Serilog.Sinks.PeriodicBatching v2.2.0
Serilog.Sinks.RollingFile v3.3.0
Microsoft.Extensions.Logging.Abstractions v1.0.0
EDIT:
My app conf here:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="serilog:minimum-level" value="Verbose" />
<add key="serilog:using:Console" value="Serilog.Sinks.Console" />
<add key="serilog:write-to:Console" />
<add key="serilog:using:Http" value="Serilog.Sinks.Http" />
<add key="serilog:write-to:Http.requestUri" value="http://log.XXX.com:8080/TestEngine" />
<add key="serilog:write-to:Http.batchPostingLimit" value="1" />
<add key="serilog:write-to:Http.batchFormatter" value="Serilog.Sinks.Http.BatchFormatters.ArrayBatchFormatter, Serilog.Sinks.Http" />
<add key="serilog:enrich:with-property:application" value="TestEngine" />
</appSettings>
<startup>
...
Serilog integration here:
var config = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithMachineName()
.Enrich.WithUserName()
.ReadFrom.AppSettings();
if (CustomLogContext == null)
{
CustomLogContext = new Dictionary<string, object>();
}
foreach (var logContext in CustomLogContext)
{
config.Enrich.WithProperty(logContext.Key, logContext.Value);
}
if (!string.IsNullOrEmpty(CustomLogFileFullName))
{
config = config.WriteTo.File($"{CustomLogFileFullName}");
}
Serilog.Log.Logger = config.CreateLogger();
Serilog.Debugging.SelfLog.Enable(msg => File.AppendAllText("internallog.log", msg, Encoding.UTF8));
ILoggerProvider loggerProvider = new SerilogLoggerProvider(Serilog.Log.Logger);
_logger = loggerProvider.CreateLogger("XXX.Logging.Serilog");
SOLUTION:
As #RubenBartelink says, if you use Selflog but you use custom log files, you take a few risks. Because Serilog may not write a custom file and may be Serilog throw an IO exception. This problem does not belong to Serilog. The problem is actually File.AppendAlltext operation. The solution is as follows:
Serilog.Debugging.SelfLog.Enable(msg =>
{
try
{
File.AppendAllText("internallog.log", msg, Encoding.UTF8);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
});
As alluded to in the comment from #Daniel A. White, you are doing a risky thing -- trying to write to a file, in a handler that's provided on an "if all else fails" basis. Some examples:
if the disk is full and the File Logger can't write (File sinks dont necessarily do that, but if they wanted to communicate failure, it would be via the SelfLog)
if a message string is malformed (Serilog logging calls will never throw; this is based on a fundamental tenet in the wiki about the logging not being important enough to stop a working app from working)
While the Serilog debugging and diagnostics Wiki page currently shows an example of writing to a file, that's simply not the nature of the contract -- it must not fail.
Hence, if you actually want to emit the SelfLog to a file, you will need to add a try/catch and swallow the exception in the handler.
I would say its pretty questionable value to have a file as a backup when the File Sink is your primary output. This is doubly the case as you don't have any mechanism to ensure it gets trimmed (imagine you had a tight loop logging with a malformed message string - it would fill your disk eventually).
I personally have handled this tradeoff by echoing the SelfLog to my Console Sink (which logging won't throw, per the above) on the basis that the operating environment (think Kubernetes) can be trusted to capture it, or alert.
I have a WSDualHttpBinding WCF Client which works perfectly except when hosted in IIS. After a reboot of the machine it will sporadically fail ca. 1/70 times after a reboot with an 403.4 (SSL Required) which manifests like this at the client:
internal class TestWCFClient :
DuplexClientBase<ITestWCFClient>, ITestWCFClient, ITestWCFClient
{
public TestWCFClient(ICallback callback) :
base(new InstanceContext(callback),
new WSDualHttpBinding
{
SendTimeout = new TimeSpan(0, 5, 0),
ReceiveTimeout = new TimeSpan(0, 5, 0)
},
new EndpointAddress("http://localhost/Content/TestWcfClient.svc")
)
{
}
System.Net.WebException
1 The remote server returned an error: (403) Forbidden.
System.Net.HttpWebRequest.GetResponse()
System.ServiceModel.Channels.HttpChannelFactory`1+HttpRequestChannel+HttpChannelRequest[System.__Canon].WaitForReply(System.TimeSpan)
System.ServiceModel.Channels.RequestChannel.Request(System.ServiceModel.Channels.Message, System.TimeSpan)
System.ServiceModel.Security.IssuanceTokenProviderBase`1[System.__Canon].DoNegotiation(System.TimeSpan)
System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(System.TimeSpan)
System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(System.TimeSpan)
System.ServiceModel.Channels.CommunicationObject.Open(System.TimeSpan)
System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open(System.TimeSpan)
System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(System.TimeSpan)
System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(System.TimeSpan)
System.ServiceModel.Channels.CommunicationObject.Open(System.TimeSpan)
System.ServiceModel.Channels.SecurityChannelFactory`1+ClientSecurityChannel`1[System.__Canon,System.__Canon].OnOpen(System.TimeSpan)
System.ServiceModel.Channels.CommunicationObject.Open(System.TimeSpan)
System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(System.ServiceModel.Security.SecuritySessionOperation, System.ServiceModel.EndpointAddress, System.Uri, System.IdentityModel.Tokens.SecurityToken, System.TimeSpan)
System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(System.TimeSpan)
System.IdentityModel.Selectors.SecurityTokenProvider.GetToken
System.ServiceModel.Security.SecuritySessionClientSettings`1+ClientSecuritySessionChannel[System.__Canon].OnOpen(System.TimeSpan)
System.ServiceModel.Channels.CommunicationObject.Open(System.TimeSpan)
System.ServiceModel.Channels.ReliableChannelBinder`1+ChannelSynchronizer+SyncWaiter[System.__Canon].TryGetChannel()
System.ServiceModel.Channels.ReliableChannelBinder`1+ChannelSynchronizer+SyncWaiter[System.__Canon].TryWait(System.__Canon ByRef)
System.ServiceModel.Channels.ReliableChannelBinder`1+ChannelSynchronizer[System.__Canon].TryGetChannel(Boolean, Boolean, System.TimeSpan, System.ServiceModel.Channels.MaskingMode, System.__Canon ByRef)
System.ServiceModel.Channels.ReliableChannelBinder`1[System.__Canon].Send(System.ServiceModel.Channels.Message, System.TimeSpan, System.ServiceModel.Channels.MaskingMode)
System.ServiceModel.Channels.SendReceiveReliableRequestor.OnRequest(System.ServiceModel.Channels.Message, System.TimeSpan, Boolean)
System.ServiceModel.Channels.ReliableRequestor.Request(System.TimeSpan)
System.ServiceModel.Channels.ClientReliableSession.Open(System.TimeSpan)
System.ServiceModel.Channels.ClientReliableDuplexSessionChannel.OnOpen(System.TimeSpan)
System.ServiceModel.Channels.CommunicationObject.Open(System.TimeSpan)
System.ServiceModel.Channels.ServiceChannel.OnOpen(System.TimeSpan)
System.ServiceModel.Channels.CommunicationObject.Open(System.TimeSpan)
System.ServiceModel.Channels.ServiceChannel+CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(System.ServiceModel.Channels.ServiceChannel, System.TimeSpan)
System.ServiceModel.Channels.ServiceChannel+CallOnceManager.CallOnce(System.TimeSpan, CallOnceManager)
System.ServiceModel.Channels.ServiceChannel.EnsureOpened(System.TimeSpan)
System.ServiceModel.Channels.ServiceChannel.Call(System.String, Boolean, System.ServiceModel.Dispatcher.ProxyOperationRuntime, System.Object[], System.Object[], System.TimeSpan)
System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(System.Runtime.Remoting.Messaging.IMethodCallMessage, System.ServiceModel.Dispatcher.ProxyOperationRuntime)
System.ServiceModel.Channels.ServiceChannelProxy.Invoke(System.Runtime.Remoting.Messaging.IMessage)
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(System.Runtime.Remoting.Proxies.MessageData ByRef, Int32)
The interesting thing is that sometimes it recovers and 1-2 minutes later it continues to work again without any IIS restart. With failed request tracing I have found that shortly before the 404 the only difference in the traces is this event from the ETW provider WWW Server for the event GENERAL_GET_URL_METADATA
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>4</Level>
<Opcode>30</Opcode>
<Keywords>0x0</Keywords>
<TimeCreated SystemTime="2021-06-14T09:46:08.170Z"/>
<Correlation ActivityID="{80000003-0014-FF00-B63F-84710C7967BB}"/>
<Execution ProcessID="21656" ThreadID="21860"/>
</System>
<EventData>
<Data Name="ContextId">{80000003-0014-FF00-B63F-84710C7967BB}</Data>
<Data Name="PhysicalPath"></Data>
<Data Name="AccessPerms">521</Data>
</EventData>
<RenderingInfo Culture="en-US">
<Opcode>GENERAL_GET_URL_METADATA</Opcode>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
</ExtendedTracingInfo>
</Event>
This event has in the good case
<Data Name="AccessPerms">513</Data>
and in the bad case
<Data Name="AccessPerms">521</Data>
I am not sure if this is a permission issue but what is the AccessPerms telling me and what input is causing it to be set to 521?
The merged config file has sslFlags set to None
C:\inetpub\TEMP\appPools\AppPool\WCFPool.config
<security>
<access sslFlags="None" />
and it looks ok to me. Is IIS sometimes demanding SSL although it is configured that for this web service it should not use it?
I have a plugin project built in C# that contains all of my plugins for Microsoft Dynamics CRM. The existing plugins are working correctly and appear to be updating correctly. However, when I attempt to register a new plugin, I am getting the below error.
The event I'm trying to register is on an entity that already has a Create & Update event attached. I've seen some other questions about the Unable to load plugin type error, but none of them seem to indicate a specific plugin that can't be loaded. What am I missing here for registering a new plugin?
Step Registration Settings
Existing Registered Steps
Error
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Unable to load the plugin type: CCSEQ.Plugins.OpportunityPlugins
Detail: <OrganizationServiceFault xmlns="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ActivityId>f9958fce-2da6-44ce-855e-532e4e8deeac</ActivityId>
<ErrorCode>-2147204720</ErrorCode>
<ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>Unable to load the plugin type: CCSEQ.Plugins.OpportunityPlugins</Message>
<Timestamp>2018-06-06T20:31:33.3462414Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil="true" />
<InnerFault>
<ActivityId>f9958fce-2da6-44ce-855e-532e4e8deeac</ActivityId>
<ErrorCode>-2147204720</ErrorCode>
<ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>Unable to load the plugin type: CCSEQ.Plugins.OpportunityPlugins</Message>
<Timestamp>2018-06-06T20:31:33.3462414Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil="true" />
<InnerFault>
<ActivityId>f9958fce-2da6-44ce-855e-532e4e8deeac</ActivityId>
<ErrorCode>-2147220970</ErrorCode>
<ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>System.IO.FileLoadException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #0DE0CBC1</Message>
<Timestamp>2018-06-06T20:31:33.3462414Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil="true" />
<InnerFault i:nil="true" />
<OriginalException i:nil="true" />
<TraceText i:nil="true" />
</InnerFault>
<OriginalException i:nil="true" />
<TraceText i:nil="true" />
</InnerFault>
<OriginalException i:nil="true" />
<TraceText i:nil="true" />
</OrganizationServiceFault>
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at Microsoft.Crm.Tools.Libraries.RegistrationHelper.RegisterStep(CrmOrganization org, CrmPluginStep step)
at Microsoft.Crm.Tools.PluginRegistration.StepRegistrationViewModel.btnRegister_Click(Object sender, EventArgs e)
Update 1
Based on Arun's input, I changed the namespace & dll build name for my C# project and rebuilt the project. I did this so I wouldn't have to unregister my existing plugins and rebuild them from the ground up. I registered this new assembly using the plugin registration tool. When I tried to register a new step, I receive the same error as before. This occurs for all registered Plugins. The example below is one I tried with Activities (specifically appointments), although I also tried this for Opportunities
Step Registration Settings
Error Message
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Unable to load the plugin type: COHEN.Plugins.ActivityPlugins
Detail: <OrganizationServiceFault xmlns="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ActivityId>1bf82d05-04d0-4bd0-a3db-87c480cc3c6e</ActivityId>
<ErrorCode>-2147204720</ErrorCode>
<ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>Unable to load the plugin type: COHEN.Plugins.ActivityPlugins</Message>
<Timestamp>2018-06-07T13:57:24.8030045Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil="true" />
<InnerFault>
<ActivityId>1bf82d05-04d0-4bd0-a3db-87c480cc3c6e</ActivityId>
<ErrorCode>-2147204720</ErrorCode>
<ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>Unable to load the plugin type: COHEN.Plugins.ActivityPlugins</Message>
<Timestamp>2018-06-07T13:57:24.8030045Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil="true" />
<InnerFault>
<ActivityId>1bf82d05-04d0-4bd0-a3db-87c480cc3c6e</ActivityId>
<ErrorCode>-2147220970</ErrorCode>
<ErrorDetails xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<Message>System.IO.FileLoadException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #FB840294</Message>
<Timestamp>2018-06-07T13:57:24.8030045Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil="true" />
<InnerFault i:nil="true" />
<OriginalException i:nil="true" />
<TraceText i:nil="true" />
</InnerFault>
<OriginalException i:nil="true" />
<TraceText i:nil="true" />
</InnerFault>
<OriginalException i:nil="true" />
<TraceText i:nil="true" />
</OrganizationServiceFault>
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at Microsoft.Crm.Tools.Libraries.RegistrationHelper.RegisterStep(CrmOrganization org, CrmPluginStep step)
at Microsoft.Crm.Tools.PluginRegistration.StepRegistrationViewModel.btnRegister_Click(Object sender, EventArgs e)
Update 2
I noticed that we have a post-build step that runs the command:
mkdir $(TargetDir)merged $(SolutionDir)packages\ILMerge.2.14.1208\tools\ilmerge.exe /out:$(TargetDir)merged\CCSEQ.Plugins.dll /keyfile:$(ProjectDir)customdevelopment.snk $(TargetDir)CCSEQ.Plugins.dll $(TargetDir)Microsoft.SharePoint.Client.dll $(TargetDir)Microsoft.SharePoint.Client.Runtime.dll
This appears to create a new directory in our output folder called merged which contains a version of the dll. I have tried updating the assembly with this version of the dll, but it errors the same way. I have tried doing this with both the debug & release versions of our build.
One other thing I tried is I imported the dll as a reference into my project to try to look at the classes/functions provided by the dll. It appears that there aren't any classes/functions in the dll, but I'm not sure if that means anything or not as I'm not that familiar with dlls.
We discovered that version 9.0.2.3 of the Microsoft.CrmSdk.CoreAssemblies was not compatible with our plugins. We aren't yet sure why this didn't work, but rolling back to version 8.2.0.2 resolved the issue.
This will happen when you have a mismatching plugin assembly version. Build the latest code, register the assembly (dll), select all the plugins & then try to register a new step.
I see the plugin name changed from CCSEQ.Plugins.OpportunityPlugins to Opportunity when you register the step under Event Handler value.
Also you mentioned other steps as create & delete but I see create & update. Are you sure you are updating the right plugin?
Verify the plugin project for class files which are plugins listed under assembly, against which you can register steps.
For some reason, my C# application is being terminated by svchost.exe and I'm trying to understand why. It was terminating the application silently until I turned on Silent Process Exit logging using Gflags.exe from the Windows Debugging Tools. It happens infrequently on machines that I can't running debugging tools on (customer pcs).
The event doesn't really provide me with much info to go on. The termination code is 805306369=0x30000001, but I can't seem to find anything useful online that would tell me how to interpret that number.
I was hoping that the Silent Process Exit log would shed some light on this, but now I just have more questions.
Any advice would be appreciated. Thanks for your help in advance!
Here is the event in question:
Log Name: Application
Source: Microsoft-Windows-ProcessExitMonitor
Date: 06/05/2013 04:12:17 PM
Event ID: 3001
Task Category: None
Level: Information
Keywords: Classic
User: SYSTEM
Computer: PC
Description:
The process 'C:\Users\Administrator\AppData\Local\MyApp.exe' was terminated by the process 'C:\Windows\System32\svchost.exe' with termination code -805306369. The creation time for the exiting process was 0x01ce61ad4e81c70c.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-ProcessExitMonitor" Guid="{FD771D53-8492-4057-8E35-8C02813AF49B}" EventSourceName="Process Exit Monitor" />
<EventID Qualifiers="16384">3001</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2013-06-05T20:12:17.000000000Z" />
<EventRecordID>2350</EventRecordID>
<Correlation />
<Execution ProcessID="0" ThreadID="0" />
<Channel>Application</Channel>
<Computer>PC</Computer>
<Security UserID="xxxxx" />
</System>
<EventData Name="EVENT_PROCESSTERMINATION_CROSSPROCESS">
<Data Name="param1">C:\Users\Administrator\AppData\Local\MyApp.exe</Data>
<Data Name="param2">C:\Windows\System32\svchost.exe</Data>
<Data Name="param3">-805306369</Data>
<Data Name="param4">01ce61ad4e81c70c</Data>
</EventData>
</Event>