Configuration :: ConfigurationManager Seems To Compile The Values Into Binary?
Jul 23, 2010
This is a bizarre behaviour I've just noticed, but very dangerous.I have the following line of code:
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SmartFormsDB"].ConnectionString))
When I run in my dev environment works fine, but when I compile and push my code to the test machine that contains a web.config with a Test DB setting, the test website
still uses my dev connection string. It's behaving as if the connection string was compiled into the binary!
I am having this strange case, at first time when the page loades, everything goes fine. But as soon as I click on any link which makes any ajax request, after that, I get this error while trying to read the configuration."System.Configuration.ConfigurationManager.ConnectionStrings' threw an exception of type 'System.Web.HttpException"I am using asp.net mvc 1.0
I have a complete web application code created by other developer using asp.net c#. I am trying to deploy it on IIS 7.5 on windows 7.
In this application, there is a root folder that contains very less code files & one web.config file. This code is online currently & when we open the url, it redirects to the sub folder which is
http://******.com/pages/home.aspx
On IIS when I try to open this same path locally as http://localhost/test_project/pages/home.aspx
I have asp.net application which in develop on the 32bit environment it works fine when deployed on the server.But the problem is when we are deploying the application on the 64bit environment it is giving two problem.1) Exception: System.InvalidOperationException: The 'MSDAORA.1' provider is not registered on the local machine."2) Exception: System.Exception: Cannot create ActiveX component.After doing some search people saying that recompiler your appliation as x86 to work on 64bit environment.How can i do that? when can I find the option for that in VS 2005.or
Using VS2008 SP1, .NET 3.5 SP1, C# Web Application Project
As we know, Web Application Projects (unlike Web Site Projects) compile the entire site for deployment. We have discovered a situation where the visual studio compiler doesnt catch and error. Then when we deploy the dll to the website (or even just run it in the built in web server) it catches the error and displays it as a "compilation" error during runtime. This is obviously disturbing. Let me explain the error:
Take a single web page in a new C# web app project, such as the default.aspx. Add a checkbox. Create an event handler for the checked changed event. Note that it modifies the .aspx file to add oncheckedchanged="yourmethodhere" in the checkbox item. Compile and everything is fine.
Now change the name of the method in the .aspx file, say for yourmethodhere to yourmethodhere_1 and compile again. Note you havent change the code behind, so you SHOULD get a compile error. But you dont. Now if you deploy or debug it, you will get a compilation error during runtime.
Note: If you do exactly the same thing in a web SITE project, the validation compile that it does when you choose to "build" the project DOES catch this error. In other words, only c# web APPLICATION projects have this problem.
I am trying to figure out how to publish a web app from a command line if there isn't a solution file present. Is this possible? Is it possible to generate a solution file from the command line? I would need example of how this is accomplished.
Everytime I compile my asp .net project it states the following:
'Sessions' does not contain a definition for 'Select'.
In the page this happens on if I change something put it back and save and re-compile it tends to go ok, but at the moment it is happening every time. It does contain a definition for Select I can type it in plus the page does not show an error where this code is and works when it does compile ok?
Several production websites running for months with no problems, all of sudden now fail to compile sporadically.
The compiler will generate errors:
ASPNET: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or UserControl).
On master page code behind files that it did not before.
In addition, this error will go away (most of the time) if we recycle the application pool.
I am using TFS to build my MVC app. I cannot do it because I get lots of compile errors. I am using version 4 of .Net and MVC 2. On the build server I have the .Net framework 4.0 installed. It has been suggested that I should also download the MVC framework as well, but when I look on the net all I can find is this MVC framework; http://mvcframework.codeplex.com/ which does not seem to be relevant and does not work anyway.
One of the assemblies I am missing on the build server is System.Web.Mvc dll.Typical error messages include; "The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)"What do I need to do to fix this?
I have a class that is normally compiled into a .dll prior to distribution and used as a component library.
IE: vbc /t:library /out:xyz.dll xyz.vb (User would download then put the .dll in the bin directory and use Imports xyz Dim obj As New xyz ojb.Foo)
There is a need to write a line of content to the class file specific to the user prior to compile.
Is this possible via server side?
I believe my short question would be, can I call vbc.exe from a site hosted with winhost.com and compile a class.vb file through vbc.exe on the server? And how?
I have been able to reach IE via ASP.NET from my account there so I think it may be possible.
Compile and Publish Site - but i want to be able to update .HTM includes? I have a few pages that have JQUERY sliders and every onces in a while the client wants to update IMAGES, i thought it would be easy if i could access the .HTM file update code instead of doing a recompile! is this even possible? or am i doing it complety wrong?
I have a 32 bit number in my DB/ DAL layer that is used to represent some yes/no facilities about hotels. so I for example bit might mean "has swimming pool", bit 2 might mean "reception desk" etc etc.Currently I have some code in the BLL that says if (number and 2) = 2 then .ispool = true - this is repeated for any many boolean hotel referances I have.What happens then is in the UI have then say something like if .ispool = true then display swimming pool icon.
Then it occurs to me that I am testing the value twice 1) To test the bin to bool in the BLL and create the structure 2) to test the structure to dislay the icon.
If I move the if (number and 2) = 2 to the UI I get the same result with one less if.Is there some better way or code do deal with this, maybe loop through the structure or something like that or an asp way that is more suitable to deal with binary representation of boolean's.
I have a project that was originally created in VS2005 using .net 2.0. I currently have win 7 machine and vs2008. When I try to compile the application it comes back saying that I am missing an assembly Web.Services2 Besides upgrading to 3.5 and having to rebuild most of the web services.
I previously crate website in framework 2.0 before one year and there is working good on server. But Currently I download same site on my local machine and configure again in Visual Studio 2008 with framework 2.0 compiler then do new changes on site and it running good on localhost.But the same code I upload on server again They can't work code properly.In new code I changes some XML file that retrieve data and save data, but I add new code in this XML file so it can't work with new code but previous code is working as good as previous.
I'm relatively new to actually publishing sites on my own..Anyway, right now I am using VS2008 to build / compile my web application and then publish it to the server. Simple enough, until I want to change several of the code behinds, and don't want to spend 30 minutes re-publishing several thousand documents.
I have been reading that publishing via VS is not the best approach, so I guess I have two questions:
1. Using VS2008, is there a way to build the project and publish only certain parts of the project such as the pre-compiled code or better yet have VS only update the code that has been changed on the server? I suppose I could simply publish it to my local drive and pick apart the files from there / is there a better way?
2. In your opinion what is the best deployment strategy?
At the moment, I've been pre-compiling using the aspnet_compiler with the -u switch but not -i. However I've noticed that if I've done a build in development since, even if I'm only promoting a flat aspx page to live, it looks for the revelant compilation *.dll which is not there.For my website, my ideal is that:
* I can update the aspx pages in terms of layout (like with asp.net 1.1)
* If code changes, I only need to deploy the updated aspx pages and the new compiled dll (like with asp.net 1.1), rather than the whole site again (generally I'm adding / improving features rather than whole re-write, and I don't want excessive downtime - also I don't have access to the live IIS)
* I'd rather not place the aspx.vb files on the live web server
Over the last week I've been investigating an issue for one of our clients whereby the initial page load following a deployment of their website takes around 1 minute, resulting in unacceptable downtime for end users. This was happening not only for code deplyments (bin dll's and .config files) but also if there were large numbers of .aspx pages updated. For code deployments it's not an issue, but for aspx updates it is; in this particular scenario, we are making use of a 3rd party content management system (RedDot from OpenText) in which every page of the site is published out as a distinct .aspx page. This means that for this website there's somewhere in the region of 2,400 separate .aspx pages. I realise this isn't an ideal situation but we're working within the constraints of the CMS, and we managed to correlate the instances where the site was unresponsive with App pool restarts, which also corresponded to publications of of .aspx pages.
I found an article by Tess Ferandez [URL] which describes all the reasons why the app pool may restart, and it does seem that if more than 15 .aspx pages are changed then the app pool will recycle and the pages will be re-compiled. Another msdn article [URL] then gave me a few pointers on how to start addressing this problem, and for the moment I've set a flag on the compilation options to prevent batch compilation:
<compilation batch="false">
This means that the initial page load now takes around 6 seconds instead of 1 minute, which is a great improvement. However, I also used the "Compilations Total" performance counter to investigate the number of pages that have been compiled by ASP.NET for my site and was quite surprised that the total number of pages that get compiled peaks at 44, which is odd given that there are 2,400 aspx pages in the site. If the batch flag is set to false, the counter slowly increments by 1 page at a time as you click around on the site; if batch mode is true, the initial compilation takes the number straight to 44 over the course of ~60 seconds. What I'm really struggling to understand is why all 2,400 pages aren't compiled. Does anyone have any inside info on what might be going on as all the documentation I've read seems to indicate that all of the pages should be compiled and this counter should be much higher.
I've set an AppSetting key for my root directory in my web.config file and now I'm going back through my site and changing all link and resources to use this key. Then If the domain ever changes I can just change one line of code and not worry about links breaking. I'm not quite sure however how to use this when I register my header and footer user controls.
I am using MS Test to test one of my controller's actions. This method uses the ConfigurationManger to read appSettigns from the web.config. For some reason ConfigurationMangager is not able to find the appsettings.In NUNIT I would just make sure to add a copy of the webconfig file to the test project so that it is available when running in that context. However this is not working for me.