CommunicationObjectFaultedException Occurring Only In Test Environment?
Aug 20, 2010
I have a WCF service than in my development and production environments works without any trouble but in my test environment it will occasionally throw a CommunicationObjectFaultedException. This has been very difficult to track down but it seems to happen only after going a long time with out calling it.client is a web applictaion running on two load balanced servers, the WCF service is hosted in IIS and running on two load balanced servers.There is no difference in the WCF configuration between the three environments so I believe there must be something different in the way the servers are set up. What are some things I can ask my server admins to check? (I don't have proper access to these servers to check stuff myself).
This question is for ASP.NET and SQL Server developers. What are your best practices with respect to setting up your development and test environment? I'm interesting in the following issues: How many tiers do you recommend and what goes on on each tier? Just dev, test, and production or perhaps dev, test, staging, and production? Which types of applications and/or servers should run on actual physical hardware and which can get away with a VM? What are your strategies for loosely coupling users from web sites, web developers from their web/app/DB servers, and DB developers from their DB servers?
How do developers stay "DRY?" What are the pros and cons to putting web, app, and DB servers on their own machines? Does putting servers on separate machines in order to minimize contention for a machine's resources trump any NIC and network latencies that might be introduced by putting them on different machines? How do you configure your web apps to minimize contention for resources (e.g. virtual directories, separate application pools, etc.) How and how often do you refresh your databases on each tier? Do you just refresh the data or both the data and objects?
I am working to rebuild my company's dev/test/QA environment. We have 10-15 programmers that are involved in a number of projects. They currently all develop locally on their PCs and use the dev environment for testing. We currently do not have a QA environment, so deployments are frequently a pain because bugs are usually found after something has gone live. Here's what I envision:
Doing away with everyone's local admin privileges and making everyone develop on a dev server. Create a QA environment that is identical to our production systems. This will allow them to test deployments. Create a new test environment that is more locked down than the dev server so that proper testing can be done. What are your thoughts? What is the best way to set up an environment like this? We develop ASP .NET applications using MS Visual Studio 2008.
Im writing unit tests for an asp.net mvc project, I have a config file that I use in my tests, for some reason , the config file has to be in in the bin folder in order to be found , Is there another way to do this as I dont feel it is best practice having config files in bin
I'm currently developing a website using VS2010 Express/SQL Express 2008, and am using the applications development server to test.
I have created an access layer which effectively takes all my cachable data and creates datasets.
I've also created a system wheras for each dataset, For each dataset I also create a token cached object (a string), which is set to expire before the dataset. The theory behind this is that when my token expires and is removed from cache, it calls a routine to rebuild the dataset, and re-caches the new result, then creates a new token. Think of it as a poor mans SQL dependency.
What this allows me to do is rebuild datasets behind the scenes with little interruption/delay throughout the day. It all works great - for instance when a user updates a table containing 100,000+ records on the site, the dataset rebuilds at hourly intervals reworking and consolidating the data in the background before representing it in a smaller cachable form.
What I would like to know is this. If I was to replace the database during the usable day (only updating the tables that users don't update), lets say adding 50 new records, would it cause the cache to be dropped. The reason I ask is because it the cache remains until its exipry time, I can replace the database and rebuild datasets incorporating new data in the background when the token expires. If the cache is dropped when I update the database, it will mean interuption whilst I reload the datasets and will change my strategy on uploading new data.
I ask the question because I'm currently working on the development server and unable to test in a live server environment at present.
I am using the following code in my Global.asax.cs file:
public static readonly IMyCommunicationService GlobalCommunicationChannel = new ChannelFactory<IMyCommunicationService>("NetTcpBinding_IMyCommunicationService").CreateChannel();
From every website I am accessing the static var "GlobalCommunicationChannel".
That is working very well so far. But sometimes, in production environment, I am getting an CommunicationObjectFaultedException. It says that I can not use my GlobalCommunicationChannel object as the object "System.ServiceModel.Channels.ServiceChannel" is in faulted-state.
I get no more information than that. After some minutes it is working again. Don't know why. I think the connection is re-established or something like that.
What causes this error? Is there a way to avoid this error in future without adding a try/catch and a retry everywhere?
I am working on an ASP.NET web app using Visual Studio 2008 and a third-party library.
Things are fine in my development environment. Things are also good if the web app is deployed in Debug configuration. However, when it is deployed in Release mode, SerializationExceptions appear intermittently, breaking other functionality.
In the Windows event log, the following error can be seen:
"An unhandled exception occurred and the process was terminated.
Message: Unable to find assembly 'MyThirdPartyLibrary, Version=1.234.5.67, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89'.
StackTrace: at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name) at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
[code]....
Using FUSLOGVW.exe (i.e., Assembly Binding Log Viewer), I can see the problem is that IIS attempts to find MyThirdPartyLibrary in directory C:windowssystem32inetsrv. It seemingly refuses to look in the bin folder of the web app, where the DLL is actually located.
i have to do some message exchange with a 3rd party (in a website).When the client posts a page, i start the message exchange. When that doesn't succeed for some reason, i report this to the client by rendering the page with a message.On the background, in a separate thread, i start a process to send abort messages to the 3rd party. I can't do this while the user is waiting for the page to come back, because it might take a few minutes.But in a test project, the test ends when the message to the 3rd party is sent, and after the new thread is started. But it seems that the new thread also ends, when the test is done.
Is that normal behaviour?I do start the thread in a new class with a reference to 2 objects from the class which tries to send the message in the first place, may that be a problem?EDIT: it keeps running when the whole process is started in IIS
When I run my app locally I get no errors. No error from Global.asax, no redirection to an error page. Everythings works fine.
When I deploy my app to a test server, my app run there with no errors. No error from Global.asax, no redirection to an error page. Everythings works fine on the test server.
But when I deploy my app to production server, the app runs fine but I keep getting errors (emailed to me) from Global.asax. On production server we have these security apps that run and keep hitting all URLs of the app on the server. Just to make sure they are working fine. When these security app hit URL of my app, my application runs fine but it gives out this global.asax error. The funny thing is that error is empty. The error are emailed to me and the email is empty. Nothing there.
There are several other apps running on the same server. My app has its own app pool and is configured correctly.
The Silverlight app has a link to a different group of reports. This *was* working fine but no more. In the following code you can see the 'Reports' part that it calls another page [URL] namely right here: WHat is happening is when the reports page is called, it goes into 'Session timeout ' right away.
I'm creating a confirm delete like popup with an iframe to use along with a gridview. When you click delete on a gridview row, the iframe shows up and asks if you would like to delete the associated image as well from the server. It works perfectly the first time I delete a row. After that whenever I click select or edit on a new row, it calls the rowdeleting event from the last deleted entry every time. I'm stumped.Here's the Sub:
'// Event that Occurs when the Delete Button is Clicked //' Protected Sub Confirm_Delete(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GridView1.RowDeleting Dim file_name As Array = Split(GridView1.Rows.Item(e.rowIndex).Cells.Item(10).Text, "/") If file_name.getLength(0) = 1 Then file_name = Split(GridView1.Rows.Item(e.rowIndex).Cells.Item(10).Text, "") End If Dim fn As String = file_name(file_name.getLength(0) -1) fn = replace(fn, ",", "%2C") fn = replace(fn, " ", "%20") Dim url As String = Me.Master.get_root_url & "CrimeBulletinProject/ConfirmDelete.asp?img_list=" & fn & "~!" confirm_delete_frame.Attributes.Add("src", url) confirm_delete_frame.Attributes.Add("style", "display: block; left: 50%") End Sub
I am building an asp.net application, using II6 on windows server 2003 (vps hosting).
I am confronted with an error I didn't receive on my development machine (windows 7, iis 7.5, 64 bit).
When my wcf service tries launching my query running against a local sql server this is the error I receive:
Memory gates checking failed because the free memory (43732992 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.
I am doing Automated coded ui testing in asp.net 2010 for web application. I am testing site and i need to know how can i create the test which will work with all browsers. Right now i created test in IE 8 but its not working in Firefox. So is there any way i can create one test and will work in all browser.
At our company we are going to develop more for the Windows platform than we have done up until now. As this scale of Windows development is new to us it would be nice with some feedback from experienced developers. Requirements we have: 5 developers from the beginning. 15 developers a year from now. All developers should be able to develop at the same time. Be able to develop solution for ASP.NET and EpiServer 5. Our idea:
A shared server which developers use for development through Terminal Services. SQL Server Express. Start with some free express edition of Visual Studio, upgrade to a commercial version if we need the additional features. Use IIS and not the web server built into Visual Studio. Questions:
Are we on the right track?
In terms of license costs the above should be cheapest, right?
What do you think about multiple developers doing development using a shared TS-server?
Do you know of any company which has a similar development environment?
Are we going to miss some features of the full Visual Studio version immediately? Is using Express version a bad choice? Is IIS the best choice? If use IIS the developers may use the same port for deployment. If we use the built in web server each one has to set their own port as we're sharing a machine.
Comment answer: We are thinking about a shared server as it will most likely decrease the license costs. So it's purely a cost issue. We are using CVS for version control. Our situation is that we develop on Mac and Linux, that's why buying 1 server license + Visual Studio licenses seems to be a cost effective way of starting this type of development.
My dev team and I would like to setup a development environment for our ASP.NET projects. BY development environment i do not mean Visual Studio. I mean, that we have a Database Server, a Application Server and a Web Server in a 'Development Environment'. We want to use this as our integration environment. Where the developers all work on there parts of ASP.NET Applications and then we can push our new changes up to test them as a whole. My Question is , what is the best way to deploy our code together without stepping on our toes?
This is a general question about dealing with URL Rewriting in a development environment. I'm developing a CMS to learn ASP.NET/C#, and I will of course need to implement URL Rewriting. This technique is known to me since I've been using with PHP for several years. However in PHP, you can have a local HTTP server, modify the PHP content directly, refresh the page and see the results. Of course in ASP.NET it's not exactly the same, since you need to compile and then publish the code. The problem I have is that I need to check the URL Rewriting-friendly links my code will generate in my development environment - basically, make the ASP.NET Development Server compatible with URL Rewrite. Or maybe not. My question really is: what is the best solution to do that? Use IIS/Apache2 (w/ Mono) for the development server?
I'm from PHP background. I used to use Apache, MySQL and PHP for web development. I'm just starting asp.net mvc. I've Visual Studio 2008 Pro SP1 & .NET 3.5 SP1 already installed on my computer. So, I installed ASP.NET MVC 1.0 Created a "ASP.NET MVC Web Application" project when I hit F5 it gives error Unable to connect to the ASP.NET Development Server No wonder. In this process I didn't setup the webserver. Can I use apache here? I guess IIS is the default. Where is it? How do I configure it? What is the WebRoot directory for IIS server? Where can I find it? On searching for "Unable to connect to the ASP.NET Development Server" I found this solution:
Step 1: Select the "Tools->External Tools" menu option in VS or Visual Web
Developer. This will allow you to configure and add new menu items to your Tools menu.
Step 2: Click the "Add" button to add a new external tool menu item. Name it "WebServer on Port 8010" (or anything else you want).
Step 3: For the "Command" textbox setting enter this value: C:WINDOWSMicrosoft.NETFrameworkv2.0.50727WebDev.WebServer.EXE (note: this points to the web-server that VS usually automatically runs).
Step 4: For the "Arguments" textbox setting enter this value: /port:8010 /path:$(ProjectDir) (or any port you like)
Step 5: Select the "Use Output Window" checkbox (this will prevent the command-shell window from popping up. Once you hit apply and ok you will now have a new menu item in your "Tools" menu called "WebServer on Port8010". You can now select any web project in your solution and then choose this menu option to launch a web-server that has a root site on port 8010 (or whatever other port you want) for the project. You can then connect to this site in a browser by simply saying [URL] All root based references will work fine.
Step 6: The last step is to configure your web project to automatically reference this web-server when you run or debug a site instead of launching the built-in web-server itself. To-do this, select your web-project in the solution explorer, right click and select "property pages". Select the "start options" setting on the left, and under server change the radio button value from the default (which is use built-in webserver) to instead be "Use custom server". Then set theBase URL value to be: [URL] But there is no C:WINDOWSMicrosoft.NETFrameworkv2.0.50727WebDev.WebServer.EXE such file on my system. Did I forget to install something?
EDIT:
I'm using Windows XP SP2 and logged in as a user with Administrative previlages. from this [URL]
Disable IPv6
Done
Make sure there isnt an edit in the hosts file for localhost There is no single entry in my hosts file (%SystemRoot%system32driversetchosts) with 'localhost' in it. Check firewall/virus settings to allow connections to/from devenv.exe I tried by disabling the firewall/antivirus If you can preview in the browser make sure the URL in the browser uses the same port number as the port number shown in the ASP.NET dev server taskbar icon. No, Actually there is no such dev server taskbar icon. Try setting a fixed, predefined port in project properties Tried it. But no positive result. S
Solution:
After trying everything. I came to conclusion that WebDev.WebServer.exe may be corrupt. So, I've replaced C:Program FilesCommon Filesmicrosoft sharedDevServer9.0WebDev.WebServer.EXE with a fresh copy : [URL]
I have a project in VS 2010 and works great in my dev environment, including a single post that has the def:
[Code]....
But when I publish to another box, I get an error "Could not instantiate file name generator.". This only occurs on the post, all the other ActionResults work fine.
I am starting a new project. I can either use the Entity Framework 4.0 or Linq to SQL as my data access layer. I don't have any experience using either product. I have read a lot about how Linq to SQL suffers in a disconnected environment like ASP.NET. I was wondering if the Entity Framework suffers from the same problems or if it is works well in a web environment. I was also wondering if someone could recommend a good tutorial or book on the Entity Framework 4.0.
i have a virtual directory in iis for my project. so that my application is accessible in other pcs as well. Now i want do debug the project when somebody is requesting the page from the other pc. i am not running application using (F5) Start Debugging. But still i want to debug when somebody is requesting the page. Netbean IDE has this feature.
I developed a web page using asp.net 2.0 and ajax toolkit on my laptop on Windows 7 and IIS 6. I have my ajax/atlas toolkit DLL in my bin. The updatePanel works fine and does not postback my page. But when i hosted my website on a dedicated server the page postback totally like i have no updatepanel/ajax in my page...
I am using : Windows server 2008, IIS 6Ajax 2.0 installed on the server. I don t understand what is the difference with windows server or IIS or something else?