Transaction Manager Trouble Shooting Tips Assumptions Setup executables must be copied to the machine in which they are to be installed on. In other words, installing from a shared drive is not supported. The following commands can be issued in the Start/Run textbox: Start/Run Short cut Commands cmd – Brings up the command prompt. Can be used as a quicker way to reach a command prompt instead of going through Start\All Programs\Accessories Microsoft.NET - This will take you to the root directory where all versions of the .NET framework is installed. You can then drill down to the specific version that you want (currently this is v2.0.50727) but could change when a new version of the framework comes out. inetmgr – Brings up IIS taskmgr – Brings up the System Task Manager showing processes running on the system. services.msc – Brings up the windows services list If error occurs relating to “Cannot Access Path c:\Program Files\Transaction Manager\Incoming” or “Access Denied”, the following can be issued from a command prompt. This should only be an issue for client/server installs. For Windows 2000 or XP setups: cacls "C:\Program Files\True Commerce\Transaction Manager" /e /c /t /g ASPNET:F and For Windows 2003 server setup cacls "C:\Program Files\True Commerce\Transaction Manager" /e /c /t /g NetworkService:F In a Client/Server setup, this gives the proper permissions for Transaction Manager directories to ASP.NET(Replace paths based on install location). These commands should be run on the server. Both command lines are run by our setup. If, after running the setup, you get an error in Transaction Manager similar to “Cannot Access Path c:\Program Files\Transaction Manager\Incoming” or “Access Denied”, try running these command lines on the server. If encountering “Failed to access IIS Metabase” error message, perform the following: aspnet_regiis is a tool installed with the .Net Framework that can be used to repair and manage ASP.NET/IIS extentions/mappings for Web Applications. The following aspnet_regiis commands can be entered after doing the following: 1) Start/Run 2) Type Microsoft.Net, hit enter 3) Browse to the directory containing the latest version of the Framework (currently this is v2.0.50727) 4) In your windows explorer address bar, you should be at C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727) 5) Open a command prompt and go to this directory. 6) You can now issue the aspnet_regiis commands. Issue the following switch for the above command: For Windows 2000 and XP Servers: aspnet_regiis –ir aspnet_regiis –s W3SVC/1/Root/TcWebServices For Windows Server 2003(Which includes IIS 6.0): aspnet_regiis –ir -enable aspnet_regiis –s W3SVC/1/Root/TcWebServices aspnet_regiis –ir installs a version ASP.NET on a machine without attempting to map all other existing Web Applications on the server. We run the aspnet_regiis –s W3SVC/1/Root/TcWebServices command to map only our Transaction Manager Web Service to this version of ASP.NET. Note the –enable switch for a Windows Server 2003 machine. This is a special switch that must be run to enable this extension in IIS. The .Net Framework is disabled by default as a security measure in Windows Server 2003. ** We use the -s instead of the –i switch(The –i option attempts to upgrade all ASP.NET websites on the server to the chosen version of the framework. If our TcWebServices are the only website on the box then using -i would not matter but some customers may have other live web sites running on the server that we are installing TcWebServices. This command is also normally run by our setup, and in most instances, you should not need to run this. If encountering “HTTP 404” error message, perform the following: First verify IIS Virtual directory under the web site is pointing to the correct path Verify TCWebServices/bin has all the appropriate .dll files On a Windows 2003 server, go to Web Services Extensions from within the IIS 6.0 Administration Tool, and verify that ASP.Net 2.0 is not disabled. If no entry exists for ASP.Net, then add a new web service extension via the current Admin tool by selecting the ‘Add’ or ‘New’ button. Then navigate to the latest .Net framework directory (i.e. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727) and select the following file, aspnet_isapi.dll. Eliminating customer internal network connectivity issues: PING ex) ping 127.0.0.1 ping ServerName ping www.yahoo.com You should see replay messages similar to: If you see “Request Timed Out”, then the IP, Server Name, or URL is not able to be reached from the machine you are issuing the ‘ping’ command from. You can use ping to see if a client machine can ‘see’ a specified IP, Server, or URL. This can be used to troubleshoot firewall issues that might be blocking an applications ability to connect to a remote server. Telnet This command is followed by a space, an IP address or Server Name, another space, and a port number. This command can be issued to test communication from one machine to another on a specific port. For a client/server Transaction Manager setup, this can be issued from the client machine to test the ability to connect to the server on that port. Ex) telnet 127.0.0.1 80 telnet SERVERNAME 80 If you immediately see a black screen, the connection succeeded. If the connection failed you will get a “connect failed” message Note: Client/Server Transaction Manager TcWebServices requires that Port 80 be open on the server that the Web Services are installed on. If you see an error similar to ‘Cannot connect to remote server’ in Transaction Manager, it is possible that this port is blocked. ipconfig /all Displays IP Addresses assigned to all network adapters on you system. SQL – Common SQL Database Setup issue: Remote Connections Not Enabled If SQL Server Express is being used, ensure during execution of our Server.exe program, the SQLExpress instance exists. An entry should exist for the machine in which the SQL server instance is installed on. For example, MachineName/SQLExpress. If this doesn’t exist in the drop down, make sure ‘SQL Server Browser’ service is running. You can do this by either going to the windows service manager and turning this service to automatic and start, or go through SQL Server Surface Configuration tool and enable. Timeout Errors: If encountering the following timeout errors: “The operation is not valid for the state of the transaction” or “Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding” If this is encountered, execute our TMServerSetup utility and under the Options tab, bump up the Timeout option (current set to 1 minute) to something no higher than 10 minutes. A preferable setting is around 3 minutes. . If encountering “Server Application Unavailable” error message, perform the following: Restart IIS If the above doesn’t work, then create a new application pool with default settings and assign TcWebServices virtual application to this new application pool. CPP/EPP/BSP “Processing failed” error during a Get If the following errors exist: The user gets a “processing failed” error during a Get of a CPP, EPP, or BSP After looking at the log file of the TM server, and the error shows as “Execution of user code in the .NET Framework is disabled. Enable ‘clr enabled’ configuration option.” The “CLR Integration” in SQL Server 2005 is not enabled. Starting in version 1.2, we will try to turn this on during the db creation, but the problem still can exist if somehow it gets turned off on the TM server machine. To manually turn this on, on the TM server machine (or where SQL Server 2005 is): Goto Start -> Programs -> Microsoft SQL Server 2005 -> Configuration Tools -> SQL Server Surface Area Configuration. Click on “Surface Area Configuration”: Click on “SQLEXPRESS\Database Engine\CLR Integration”, and click the “Enable CLR integration” check box 64 Bit Operating System Install Steps Note: Prior to initiating Transaction Manager’s setup.exe (i.e. install), the customer MUST first install the 64-Bit .Net Framework followed by the SQL Server 2005 Express 64 Bit install, and finally execute our Transaction Manager setup.exe. Below summarizes all steps involved: 1. IIS (if not already done) 2. 64-Bit .NET Framework 3. SQL Server 2005 Express 64 Bit 4. SQL Server 2005 Management Studio 64 Bit 5. Transaction Manager setup.exe Note: If encountering an error message similar to “Microsoft.SqlServer.BatchParser.dll is malformed” delete the following dll’s from the Transaction Manager’s root install directory (i.e. C:\Program Files\True Commerce\Transaction Manager) as well as the TcWebServices directory for a client/server install. Microsoft.SqlServer.BatchParser.dll Microsoft.SqlServer.Replication.dll Removing Beta .Net Framework Applications If an error is received during the Transaction Manager Setup that a Beta version of the .Net 2.0 framework is detected, do the following: 1) 2) 3) 4) Go to Control Panel\Add Remove Programs Uninstall any SQL Server 2005 Express Beta versions Uninstall the SQL Native Client Uninstall any development tools if they are present(ex: C# Express Beta or Visual Basic Express Beta) 5) Uninstall the .Net 2.0 Framework Beta Note: The above steps must be done in the specified order. The .net framework beta must be the last to be uninstalled. For SQL Server 2005 Express Beta to be uninstalled, the beta framework must be present. Time Tolerance Error or WSE910 Error If the user comes across the error message listed below when performing a Get or Send operation via Transaction Manager, please add the listed configuration setting to both the application config file as well as the TcWebServices Webconfig file: MICROSOFT.WEB.SERVICES3.RESPONSEPROCESSINGEXCEPTION: WSE910: AN ERROR HAPPENED DURING THE PROCESSING OF A RESPONSE MESSAGE, AND YOU CAN FIND THE ERROR IN THE INNER EXCEPTION. YOU CAN ALSO FIND THE RESPONSE MESSAGE IN THE RESPONSE PROPERTY. ---> MICROSOFT.WEB.SERVICES3.SECURITY.SECURITYFAULT: AN ERROR WAS DISCOVERED PROCESSING THE <SECURITY> HEADER ---> SYSTEM.EXCEPTION: WSE065: CREATION TIME OF THE TIMESTAMP IS IN THE FUTURE. THIS TYPICALLY INDICATES LACK OF SYNCHRONIZATION BETWEEN SENDER AND RECEIVER CLOCKS. MAKE SURE THE CLOCKS ARE SYNCHRONIZED OR USE THE TIMETOLERANCEINSECONDS ELEMENT IN THE MICROSOFT.WEB.SERVICES3 CONFIGURATION SECTION TO ADJUST TOLERANCE FOR LACK OF CLOCK SYNCHRONIZATION. Files to modify as well as config file settings: Files TcTransactionManager.exe.config (Application config file) \TcWebServices\ Web.Config Configuration Setting (Place after </Messaging> end tag under <Micorosoft.web.services> tag) <security> <timeToleranceInSeconds value="43200" /> </security> ASP.Net worker process ASP.Net worker process runs under different user accounts dependent upon OS. Issues arise when the Domain Controller doesn’t allow for ASPNET user accounts and this issue happens for Windows 2000 domain controller. Windows 2000 and XP – ASPNet user Windows 2003 Server – NETWORK SERVICE User Windows Domain Controller o On Windows 2000 domain controller servers, ASP.NET applications run under the IWAM_machinename identity. o On Windows 2003 domain controller servers, ASP.NET applications run under the NETWORK SERVICE identity Server Unavailable Error When encountering “Server Unavailable” error, the typical issue centers around two web sites under the default web site are using different versions (i.e. 1.1 & 2.0) of the .net framework. More detailed error message exists under the windows event viewer from within the “Application” event category. Resolution: Create a new application pool named “TrueCommerce” accepting all default settings. Under the TcWebServices virtual directory, select properties and change the application pool setting to point to the newly created “TrueCommerce” application pool. Then restart IIS by right clicking on default web site and restarting services. Object Reference Error Object Reference error is generic message, but if encountered when doing a client/server request through IIS, most likely the issue is with the TcWebServices install. The TcWebServices install probably failed (i.e. due to IIS not being installed) and will require an uninstall and re-install. “Process cannot access the file” error during a Get During a get, if you get a error stating “The process cannot access the file 'C:\Program Files\True Commerce\Transaction Manager\Incoming\128296963374795374.zip' because it is being used by another process.”, it could be from a Virus protection or a real time protection program on the customers server machine. For the customer we found this for, they had a program called “E-Trust”, that was scanning the zip file, which did not allow us to delete it at that point. When the customer turned off the E-Trust, it worked. So the customer needs to make adjustments to the program to allow either zip files, or just files in our Tm folder to be excluded from the scanning. Service MSDTC was not found on computer '.'. You typically do not have to reinstall the Microsoft Distributed Transaction Coordinator (Msdtc.exe) on computers that are running Windows XP or later versions. If you use an earlier operating system, you may have to reinstall MS DTC after you install software such as Microsoft SQL Server 6.5 because this software overwrites MS DTC binaries with the versions that are included with the software. Reinstalling the correct version of Msdtc.exe restores the binaries. In Windows XP and later versions, the Windows File Protection (WFP) feature makes sure that current system binaries are not replaced. However, if you have to reinstall MS DTC on a computer that is running Windows XP, use the following procedure. 1. 2. 3. 4. At a command prompt, type the following command: a. %WINDIR%\System32\msdtc.exe –uninstall At a command prompt, type a. %WINDIR%\System32\msdtc.exe -install. Under Settings/Control Panel/Administration Tools/Services search for the “Distributed Transacting Coordinator” and ensure it is started and Startup Type set to ‘Automatic’. Reboot is recommended but not necessary. Try to have them reboot that evening. HTTP status 401: Unauthorized If customer is encountering the following error message within TM’s status window: “The request failed with HTTP status 401: Unauthorized ( The server requires authorization to fulfill the request. Access to the Web server is denied. Contact the server administrator. ).” Ensure server:port is correct. For example, the default port is 80, but if the user changes this to something other than 80, the all client config files along with the IIS web service web site requires explicitly specifying this port. Transaction Manager Update and SQL Server CLR (Error: The located assembly's manifest definition does not match the assembly reference) Transaction Manager stores an assembly inside SQL Server which contains the Stored Procedures used to install PlugIns when a ‘Get’ is performed. This includes the xcpp profile, the xepp, xbsp, and xedi transactions. During the Transaction Manager upgrade process, we replace this assembly with the latest version inside SQL Server. A reboot after updating Transaction Manager is required to restart services on the machine and complete the upgrade. You may encounter the following error after upgrading Transaction Manager and trying to perform a ‘Get’ to request the latest plugins and transactions from TC.Net: TcIntException Module:Biz A .NET Framework error occurred during execution of user-defined routine or aggregate "aptc_XCPP_Install": System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlConnectionFactory' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlPerformanceCounters' threw an exception. ---> System.IO.FileLoadException: The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) System.IO.FileLoadException: The above is an entry from the Transaction Manager log file. You will see matching error messages for aptc_XEPP_Install and aptc_XBSP_Install as they are also located in the SQL Server assembly. Resolution: A reboot will fix this error as it will restart services on the machine, including SQL Server. If the customer cannot perform a re-boot after the update, restarting the SQL Server service will resolve the issue temporarily. This can be done as follows: On the machine where the SQL Server database is located, Go to Start/Control Panel/Administrative Tools/Services Locate ‘SQL Server (SQLEXPRESS)’ in the list of services, right click and choose restart. This should refresh SQL Server with the updated Transaction manager assembly. Note: The above is only a temporary fix. A full reboot is required as soon as possible. Error: “Server did not respond in a timely manner or fashion” For the computer hosting IIS, check under Control Panel/Administrative Tools/Services program that the “World Wide Web Publishing” service is running. 500 Internal Server Error: Some first steps that are useful in troubleshooting IIS problems are to test the basic IIS functionality of IIS by viewing the default IIS pages that are installed with IIS. At the very least, the default pages should be able to be viewed through a browser on the server. A recommended step in troubleshooting IIS issues is to turn off the “display friendly http error message” setting in Internet Explorer. This will allow the real underlying error to be displayed in the browser. 1. Turn off the friendly error message option in the browser as follows: In Internet Explorer 5.x and 6.x, on the Tools menu, click Internet Options. On the Advanced tab, under the Browsing section, click to clear the Show friendly HTTP error messages check box, and then click OK. Close and reopen the browser. Type http://localhost You should see an IIS default page. If you receive an error page there is an underlying issue with IIS. This must be resolved for Transaction Manager client/server communication to work correctly through IIS. Analyze the error message displayed and check the Windows Event Viewer for additional information. Resolving 500 errors - general This error can only be resolved by fixes to the Web server software. It is not a client-side problem. It is up to the operators of your Web server site to locate and analyse the logs which should give further information about the error. Go to the Windows Event Viewer : If you see an error similar to the following, the issue could be due to COM/DCOM not functioning correctly. The server failed to load application '/LM/W3SVC/1/Root'. The error was 'Class not registered' If IIS is installed on the computer, IIS creates several COM+ applications. To re-create these applications, run the following commands at a command prompt: CD windows\system32\inetsrv rundll32 wamreg.dll, CreateIISPackage (note: case sensitive) regsvr32 asptxn.dll iisreset 2003 Server – Cannot view Application Pools under IIS Administration Manager 1. In IIS Manager, expand the local computer, right-click Web Sites, and then click Properties. 2. Click the Service tab, clear the Run WWW service in IIS 5.0 isolation mode check box, and then click OK. 3. To start the WWW service, click Yes when asked if you want to restart IIS now. If the switch to worker process isolation mode is successful, a folder named Application Pools appears in the IIS Manager listing for your local computer. You can quickly determine which isolation mode IIS is running because the Application Pools folder is present in worker process isolation mode and absent in IIS 5.0 isolation mode. Configuring the DTC for Remote Access Transaction has aborted - This error revolved around the MSDTC. This error can have more than one cause. The steps in troubleshooting this are as follows: Before troubleshooting further, check that the Distributed Transaction Coordinator is running in both the client and server. You can view this in Control Panel/Administrative Tool/Services. If they both appear to be running a simple restart of the services is a good place to start. If the error persists: 1) Turn on tracing in Transaction Manager 2) View the log file for more details If you see a Timeout error message, the operation performed in Transaction Manager exceeded the timeout value set for the MSDTC. Try performing the operation with a smaller subset. Network latency can also cause a timeout. If you see an error similar to the following: Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool. This usually occurs when the Transaction Manager database is installed on a dedicated SQL Server box as usually occurs during a ‘Save’ operation in Transaction Manager. For the majority of our setups, whether it be all on one machine or Client/Server, the SQL database is usually either located on the same machine as the client or, when going through web services, the database is still local to the web services. When the database is on a dedicated server completely separate from our application files, the DTC must be configured to allow remote connections. This can be done as follows: The following steps must be done both on the database server as well as the client. 1) Go to Control Panel/Administrative Tools/Component Services 2) Drill down to the My Computer Node 3) Right Click, Select Properties 4) Go to the MSDTC tab 5) Click the Security Configuration button at the bottom 6) Set options as follows: When clicking the OK buttons, the Distributed Transaction Coordinator service is restarted automatically. Installing Transaction Manager in a 3 tier Architecture When Transaction Manager is installed in a 3 tier type of setup there are a few requirements that need to be addressed: In a 3 tier setup, the Transaction Manager Client setup is installed on one or more client machines. The network setup which contains our Web Services are installed on an app server. The Transaction Manager Database is then installed another server, usually a dedicated SQL Server box. This is usually a full blown version of SQL Server 2005 where the customers have all of their databases. This type of setup is illustrated below where TM Clients talk to an intermediate Application Server where our Web Services are installed. Communication is then established from the Application Server to the Transaction Manager Database residing on another machine. 1) Transaction Manager Client installs need to be run on all workstations 2) IIS needs to be installed and configured correctly on the Application Server. Network Transaction manager installation needs to be run on the Application Server. 3) SQL Server Client components must be run on the Application Server. This must be done because our Web Services on the Application Server need to be able to communicate with the Remote SQL Server machine. Our Web Services actually act as a SQL client in this type of setup. *** See Notes Below *** 4) The Transaction Manager Database setup must be run on the database server. *** See notes below *** 5) The Distributed Transaction Coordinator (DTC) must be configured to allow remote connections. This is because the connection is being established from the Application Server to the Remote SQL box. This must be done for BOTH the DTC on the Application Server as well as the DTC on the Database Server *** See ‘Configuring the DTC for Remote Access’ above for instructions*** 6) Run ClientSetup.exe on all client machines. Select the name of the Application Server from the dropdown. 7) Run ServerSetup.exe on the Application Server. Point this to the database instance on the database box. ***Step 3 Notes: To install the required SQL Server client components, run the SQL Server Express setup (SQLEXPR.exe) on the Application Server. This is usually located in C:\Program Files\True Commerce\Transaction Manager\Admin Setups\SQL Server Express. You will see the following screens: Click install You will then see the following screen: We are not installing the Database Services so everything under the Database Services should have a Red ‘X’. Select each feature under the Client Components node and make sure its set to install the entire feature on the hard drive. Click through accepting all defaults. ***Step 4 Notes: The Transaction Manager database setup must be run on the database server. The Setup.exe is usually located in C:\Program Files\True Commerce\Transaction Manager\Admin Setups\Database Copy this executable to the Database Server. There is also one Transaction Manager dll that must also be copied to the DataBase Server. Tc.Int.SqlCLR.StoredProcedures.dll located in the Transaction Manager root directory must also be located on the database server. The Database Setup uses this dll to install our SQL Server CLR stored procedures into the database. After copying both of these files to the Database Server. run the Database Setup exe. Be sure to choose the directory that contains the Tc.Int.SqlCLR.StoredProcedures.dll. The Remote server returned an error: (407) Proxy Authentication Required. This particular issue ended up being a Proxy Server related fix. If the customer is setup with a Proxy Server (i.e. routing all internet (Inbound and Outbound) traffic through one box/port, then this proxy server configuration must allow for port 443 (TC.Net HTTPS) to take both inbound and outbound traffic. In this particular case, the customer allowed for Outbound (Send) but prevented Inbound (i.e. Get). Error encountered running the SQL Script tmStrProc.sql When executing Transaction Manager’s SQL script during the database install if you encounter the following error message try solution mentioned below: There was an error running the SQL script tmStrProc.sql. Setup will now terminate. Line: 15369 Error: Assembly 'Tc.Int.SqlCLR.StoredProcedures' was not found in the SQL catalog of database 'Integrator'. (6528) Solution: Enable Named Pipes in SQL. ISA Server error 502 ISA error If encountering connection errors on an ISA Server, one possible issue could be related to permissions. Try the following solution: Solution: On the ISA Proxy server, make sure you allow the page ProcessRequestMgrWS.asmx access through the proxy server. Server Error in '/TcWebServices' Application. The specified module could not be found. (Exception from HRESULT: 0x8007007E) A customer had a 3 tier setup, on a Windows 2003 machine. TM would work fine locally, but would get the fore-mentioned error in IIS or logging into TM as client/server. The “specified module” that was erroring our was the file “\Transaction Manager\TcWebServices\bin\ Microsoft.SqlServer.Replication.dll”. Removing this file from the bin folder eliminates the error. This causes TM to run fine through client/server, but doesn’t allow you to do a backup/restore of the db from within TM. At this time, we are not sure of why this happens. Maybe loading just sql server, or Sql Server Native Client on the server machne (machine without the DB), would fix it, but this hasn’t ben tried. Here is what the error is in our log file… “[FileNotFoundException]: The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.Load(String assemblyString) at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) [ConfigurationErrorsException]: The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDi rectory() at System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) at System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) at System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirect ory vdir, Boolean ignoreErrors) at System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath) at System.Web.UI.WebServiceParser.GetCompiledType(String inputFile, HttpContext context) at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IEx ecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)” “Server was unable to process request. ---> Unable to generate a temporary class (result=1). error CS2001: Source file 'C:\WINDOWS\TEMP\qnaqyhzd.0.cs' could not be found error CS2008: No inputs specified” After looking up the error message, I found a resolution at... http://support.microsoft.com/kb/908158 ...where it explains to fix the issue... To resolve this issue, grant the user account the List Folder Contents and Read permissions on the %windir%\Temp folder. When I did that on the customers machine, it fixed the error. “CS0016: Could not write to output file”, “'Access is denied.”, “[No relevant source lines]” A customer was getting the following error message in IIS… I found a resolution at this site. This site describes the problem in .Net 1.1, and explains proplems with permissions on Temp folders… http://support.microsoft.com/default.aspx?scid=kb;en-us;825791 For this customer, we didn’t need to follow all the steps given. All that we needed to do, was go to the folder “C:\WINDOWS\Temp”, and set the proper permissions (“Full Control”) to “Network Service”, and then restart IIS.