Solved

ASP.NET IIS issue with Sharepoint

Posted on 2008-10-22
1
1,503 Views
Last Modified: 2012-05-05
We are running a MOSS 2007 server with Ascentn Agilepoint workflow on top. Everything works fine till any user has >42 items in their workflow. 42 and below eveything works fine. However when 43 is hit MOSS bombs out on the users workstation.
I recieve the following error/warning on the MOSS server.
Event Type:      Warning
Event Source:      ASP.NET 2.0.50727.0
Event Category:      Web Event
Event ID:      1309
Date:            10/22/2008
Time:            4:04:55 PM
User:            N/A
Computer:      MOSS
Description:
Event code: 3001  
Event message: The request has been aborted.  
Event time: 10/22/2008 4:04:55 PM  
Event time (UTC): 10/22/2008 9:04:55 PM  
Event ID: 44c2db04d85d4cc4831a49beaf4e719c  
Event sequence: 8  Event occurrence: 1  
Event detail code: 0    

Application information:      
Application domain: /LM/W3SVC/1836688966/Root-1-128691827650712080      
Trust level: Full      
Application Virtual Path: /      
Application Path: C:\Inetpub\wwwroot\wss\VirtualDirectories\5555\      
Machine name: MOSS    

Process information:      
Process ID: 1748      
Process name: w3wp.exe      
Account name: Domain\xxxxxxxx  
 Exception information:      
Exception type: HttpException      
Exception message: Request timed out.    

Request information:      
Request URL: http://MOSS:5555/workflow/default.aspx      
Request path: /workflow/default.aspx      
User host address: 192.168.1.119      
User: domain\simpson      
Is authenticated: True      
Authentication Type: NTLM      
Thread account name: domain\xxxxxxx    
Thread information:      
Thread ID: 1      
Thread account name: domain\xxxxxxx    
Is impersonating: False      
Stack trace:
    Custom event details:

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

I'm not sure where the fault is or really how to address the problem.
0
Comment
Question by:LP_Tech
1 Comment
 

Accepted Solution

by:
LP_Tech earned 0 total points
ID: 22822236
The problem ended up being a problem in the agile point code.
private static string a(string A_0, string A_1)
{
    ProcessStartInfo startInfo = new ProcessStartInfo(A_0, A_1);
    startInfo.UseShellExecute = false;
    startInfo.RedirectStandardInput = false;
    startInfo.RedirectStandardOutput = true;
    startInfo.RedirectStandardError = true;
    startInfo.CreateNoWindow = true;
    string str = string.Empty;
    Process process = Process.Start(startInfo);
    try
    {
        process.WaitForExit();
        str = process.StandardOutput.ReadToEnd();
        str = str.Replace("\n", string.Empty).Replace("\r", string.Empty);
    }


&&.

MSDN Article - http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

Very important part of this article:

Synchronous read operations introduce a dependency between the caller reading from the StandardOutput stream and the child process writing to that stream. These dependencies can cause deadlock conditions. When the caller reads from the redirected stream of a child process, it is dependent on the child. The caller waits for the read operation until the child writes to the stream or closes the stream. When the child process writes enough data to fill its redirected stream, it is dependent on the parent. The child process waits for the next write operation until the parent reads from the full stream or closes the stream. The deadlock condition results when the caller and child process wait for each other to complete an operation, and neither can continue. You can avoid deadlocks by evaluating dependencies between the caller and child process.

Heres what MSDN says youre not supposed to do (call WaitForExit() before ReadToEnd())  which is exactly what is being done in the code above:

// Start the child process.
 Process p = new Process();
 // Redirect the output stream of the child process.
 p.StartInfo.UseShellExecute = false;
 p.StartInfo.RedirectStandardOutput = true;
 p.StartInfo.FileName = "Write500Lines.exe";
 p.Start();
 // Do not wait for the child process to exit before
 // reading to the end of its redirected stream.
 // p.WaitForExit();
 // Read the output stream first and then wait.
 string output = p.StandardOutput.ReadToEnd();
 p.WaitForExit();
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
I thought I'd write this up for anyone who has a request to create an anonymous whistle-blower-type submission form created using SharePoint 2010 (this would probably work the same for 2013). It's not 100% fool-proof but it's as close as you can get…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now