October 21, 2010

GallaryServerPro SetUp From SourceCode

I downloaded GalleryServerPro_V2_3_3750_source from the below link
http://www.galleryserverpro.com/download.aspx

I am using sqlserver 2008/Visual studio 2008/.net Framework 3.5
Below are the steps I followed to make it work.

  1. Unzip GalleryServerPro_V2_3_3750_source.zip in physical directory.
  2. Open Visual Studio 2k8 
  3. Click On Open web site 
  4. Select folder GalleryServerPro_V2_3_3750_source\Website and Click Ok.
  5. From the solution explorer delete the SqlLite.dll from the bin folder
  6. Copy the content of web_sqlserver_3.5.config  into  web.config(as I am using the sqlserver and .netframework 3.5) 
  7. Open GalleryServerPro_V2_3_3750_source\Website\gs\config\galleryserverpro.config and change the Sqllite provider to SqlServer Provider by replacing 
                      <dataProvider defaultProvider="SQLiteGalleryServerProProvider">
                               to this:
                    <dataProvider defaultProvider="SqlServerGalleryServerProProvider">.

           To Install the database hit the below link
            http://localhost/Website/default.aspx?g=install
            Follow the wizard Steps and provide the DBserver Information , Database ll be installed 

           To visit the gallary hit the below link
           http://localhost/Website/default.aspx




October 10, 2010

Performance Counters not able to see in Windows xp


Yesterday I was trying to see my ASP.NET Application Performance but when i clicked on add objects to add the ASP.NET Application in performance counter , No Objects were there.It was a problem of corrupted relevant file.I followed below steps to make it work



1.       Start Regedit.exe. (You cannot use Regedt32.exe because it does not allow searching for registry values.)
2.       Click to select the following key
3.       HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
4.       Select Find from the Edit menu.
5.       In the Find What field, type Disable Performance Counters.
6.       Click Find Next. This will locate a Performance key that may have this Registry value set to 1.
7.       If the Registry value is set to 1, set the value to 0 or delete the Registry value.
8.       Press F3 to find the next occurrence of this Registry value.
9.       Repeat the previous two steps until there are no Performance keys that have theDisable Performance Counters value set to 1.
10.   copy C:\WINDOWS\system32\PerfStringBackup.INI from a PC where performance counter  works correctly
11.   cd C:\WINDOWS\system32
12.   lodctr /R:PerfStringBackup.INI





October 8, 2010

File Uploader on Godaddy Server C# Code

I wanted to upload a .pdf file from my web Application to my server which is shared server on Godaddy.
I thought to use the FTP Upload so below is the code which I used 



 //public void ftpfile(string ftpfilepath, string inputfilepath)
    //{
    //    string ftphost = "127.0.0.1";
    //    //here correct hostname or IP of the ftp server to be given  


    //    string ftpfullpath = "ftp://" + ftphost + ftpfilepath;
    //    System.Net.FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
    //    ftp.Credentials = new NetworkCredential("username", "password");
    //    //userid and password for the ftp server to given  


    //    ftp.KeepAlive = true;
    //    ftp.UseBinary = true;
    //    ftp.Method = WebRequestMethods.Ftp.UploadFile;
    //    FileStream fs = File.OpenRead(inputfilepath);
    //    byte[] buffer = new byte[fs.Length];
    //    fs.Read(buffer, 0, buffer.Length);
    //    fs.Close();
    //    Stream ftpstream = ftp.GetRequestStream();
    //    ftpstream.Write(buffer, 0, buffer.Length);
    //    ftpstream.Close();
    //}

Above code worked well from my Local machine and I was able to transfer the file to the godaddy hosting server.but the same code when I deployed on server gave the following error

Security Exception

Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[SecurityException: Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
   System.Security.CodeAccessPermission.Demand() +58
   System.Net.FtpWebRequest..ctor(Uri uri) +161
   System.Net.FtpWebRequestCreator.Create(Uri uri) +24
   System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) +216
   System.Net.WebRequest.Create(String requestUriString) +44
   Upload.ftpfile(String ftpfilepath, String inputfilepath) +32
   Upload.btnUpload_Click(Object sender, EventArgs e) +58
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
   System.Web.UI.Page.ProcessRequest() +80
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.upload_aspx.ProcessRequest(HttpContext context) +4
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

Version Information: Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3053

I tried to change the trust level in web.config file but Godaddy has blocked it you can not make the Hight Trust.
So I left that idea and used the File Uploader Control of ASP.NET 2.0 and below is the code which I wrote on Upload Click Button

 protected void btnUpload_Click(object sender, EventArgs e)
    {
 string filePath = "~/";
        string fileName = FileUpload1.FileName.ToString();
       FileUpload1.SaveAs(Server.MapPath(filePath) + "Test-brochure.pdf");
}


I uploaded the above code and it worked fine and the .pdf file was getting saved with the name Test-brochure.pdf in the root directory.but in this case my pdf file size was 26kb.

but when i gave the 25MB size file I/p .It din't work In Uploading progess bar it went till 15% then again came to 0 and went till 15% and the page has been removed from the server was coming.

I realized that the problem was of file size
so to make it work for the 25MB  file size I added the following node in <system.web> in web.config file

<httpRuntime 
executionTimeout="330" 
maxRequestLength="33792" 
requestLengthDiskThreshold="80" 
useFullyQualifiedRedirectUrl="false" 
minFreeThreads="8" 
minLocalRequestFreeThreads="4" 
appRequestQueueLimit="5000" 
enableKernelOutputCache="true" 
enableVersionHeader="true" 
requireRootedSaveAsPath="true" 
enable="true" 
shutdownTimeout="90" 
delayNotificationTimeout="5" 
waitChangeNotification="0" 
maxWaitChangeNotification="0" 
enableHeaderChecking="true" 
sendCacheControlHeader="true" 
apartmentThreading="false" />

basically these two highlighted attributes i increased according to my file size .
default is the below in machine.config
             <httpRuntime maxRequestLength="4096" />

and 
<httpRuntime maxRequestLength="10000" />
will establish a max file upload size of 10,000 Kilobytes.


You can change this attribute according to ur file size
You can set this more broadly in your machine.config, too.