Friday, January 27, 2012

System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'


System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

This started happening after I enabled WCF HTTP and Non-HTTP Activation under Micosoft .NET Framework 3.5.1.

Fix : - run ASP.Net regiis again from 4.0. (Run VS 2010 command prompt and execute aspnet_regiis -i).








Thursday, October 29, 2009

Site Under Maintenance with ASP.Net 2.0

If you have worked with deploying websites onto production/test environments, you might have wanted to show a 'Site Under Maintenance' or a similar message to all those who tries to access the website. To achieve this, people used to resort to all kinds of  setups ranging from HttpModules to setting up a html page as default page of the application.

Now in Asp.Net 2.0 onwards we have a simple way of acheiving this. Just put a file NAMED app_offline.htm in the root folder of the application and : voilĂ !! all new requests will be redirected to that html page. 

To revert back, just rename the file to some other name. Neat & clean. 


[Edit 04 Aug 2010 ] This might not be good idea as ASP.Net responds with a 404 http code. Ideally it should have been 200.

Monday, October 12, 2009

Simple way to check time consumed by a piece of code using stopwatch class

TimeSpan ts;
string elapsedTime;
System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
stopWatch.Start();
//DO SOME LENGTHY OPERATION
ts = stopWatch.Elapsed;
elapsedTime =
                    String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                    ts.Hours, ts.Minutes, ts.Seconds,
                    ts.Milliseconds / 10);
 stopWatch.Reset();
 stopWatch.Stop();

Use XML with SQL

Declare @doc xml

set @doc ='


'
Declare @handle int

Exec sp_xml_prepareDocument @handle output, @doc

Select ImageName, date From openXML(@handle, N'/r/i') with (ImageName varchar(20) 'n', date datetime 'm')
Select ImageName,date From openxml(@handle,'/r/t') with (ImageName varchar(20) 'n', date datetime 'm')

Exec sp_xml_removeDocument @handle

Thursday, July 23, 2009

Executing a stored procedure with output parameter doesnt return any value.

When you use a DataReader object to read data from SqlServer, the parameter passed in as output parameter doesnot get assigned even after excuting the reader.

Solution:- Close the DataReader and your value will get returned.

Reason:- The output parameter is returned at the end of the data stream when you use a DataRader.

Reference:- http://support.microsoft.com/kb/308621

Wednesday, April 8, 2009

Sql Server 2005 Linked Server Scripting issue

I generated the 'CREATE' script of a linked server in my DB and got the following script

EXEC master.dbo.sp_addlinkedserver @server = N'MYSERVERNAME', @provider=N'SQLNCLI', @datasrc=N'MYINSTANCENAME, @catalog=N'SOMENAME'

I dropped the same and tried to add it with the above script and it gave me the error

Msg 15429, Level 16, State 1, Procedure sp_addlinkedserver, Line 42
'(null)' is an invalid product name.

Solution :- Add the product name also in the sp parameters.

An sp_helptext on the sp showed this:-

create procedure sys.sp_addlinkedserver
@server sysname, -- server name
@srvproduct nvarchar(128) = NULL, -- product name (dflt to ss)
@provider nvarchar(128) = NULL, -- oledb provider name
@datasrc nvarchar(4000) = NULL, -- oledb datasource property
@location nvarchar(4000) = NULL, -- oledb location property
@provstr nvarchar(4000) = NULL, -- oledb provider-string property
@catalog sysname = NULL -- oledb catalog property
as


etc etc ...

The Script Linked Server as Create To command somehow missed the @srvproduct parameter.

So the modified sql statement will be

EXEC master.dbo.sp_addlinkedserver @server=N'MYSERVERNAME', @srvproduct=N'MSSQLSERVER', @provider=N'SQLNCLI', @datasrc=N'MYINSTANCENAME, @catalog=N'SOMENAME'

Wednesday, March 4, 2009

Regex for matching relative URLs

This Regex will match the following Relative URLs
REGEX
-----
^(/[a-zA-Z0-9]+)+(\.[a-zA-Z]{2,4})((\?\w*=?\w*)(\&\w+=\w+)*)?$

URLs
----
/folder1/page.ax
/folder1/page.php
/folder1/folder2/page.aspx
/folder1/page.aspx?qstring1=value1 (likewise n number of query strings)

Will not match

/folder1?/page.aspx
/folder1/page.aspx?=value1
/folder1/page.aspx?qstring1=value1?qstring2=value2


^(/[a-zA-Z0-9]+)+(\.[a-zA-Z]{2,4})((\?\w*=?\w*)(\&\w+=\w+)*)?$