X64 ASP.net failing to find assembly - asp.net

I am having an issue with something that seems like it should be simple. I am just trying to use the sharepoint object model from an ASP.net page. It's running on Framework 3.5 (required by sharepoint), and I realize it needs to be set to build on x64 (also required by sharepoint from what I understand). The issue is when I do this it returns "Could not load file or assemply ". If I switch it to any CPU then it reports that the call to build SPSite can't find the site address.
Basically if I open a brand new web app project and switch it to framework 3.5 and build target x64 it will report this same error. It seems like I am doing something stupid but I have no idea what it could be.

Ensure your IIS AppPool is set to x64.

The DLL's project build output / platform should be set to Any CPU.

Related

ASP.Net Application deployment on Windows Server 2003

I'm trying to deploy an ASP.Net application I developed to a Windows Server 2003 System but I get a error message when running the Site.
The first thing is that I get a Null Reference exception when I want to access my custom configuration section. So I figured that maybe the System.Configuration Assembly might not be installed. However I removed the reference and included the database directly into code to see if it works without.
But now I'm getting another error that a third party server control is not recognized.
Error Message: Server label
"trirand:JQGrid" unknown.
The same application runs just fine on my XP machine with IIS 6 installed so I wonder if I'm missing some installation. This is the first ASP.Net Application on that machine as before there were only ASP tools. I think that the .Net Framework 3.5 SP1 is installed but I'm not sure. Another question is if the ASP.Net is integrated into the .Net Framework of if I need a different install package.
Update:
I experienced a weird behaviour: I added the obviously wrong element <asdf> to the web.config file. On my development machine that gave me the expected error, but on the server nothing happened at all. So it seems like it some does not recognize my web.config file.
You need to check if the windows server system is loaded with the software your application required.
The folder v3.5 should be there in the following location.
C:\WINDOWS\Microsoft.NET\Framework\v3.5
Also you need to check if asp.net is installed on the system, if you are not sure then do install it, installing it if it is already there have no side effects.
To install asp.net type the following commands in DOS prompt.
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
// then
aspnet_regiis.exe -i
Then also, confirm in IIS that correct version of asp.net is selected for your website.
To check; go to your website properties in IIS
then select ASP.NET tab then check ASP.NET version it should be 2.0.50727 for websites below .net version 4.0
Good Luck!

Error: This assembly is built by a runtime newer than the currently loaded runtime

I have downloaded published (code behind files are no there, combined with dll in bin folder) web application from Window Server 2008 where it is hosted, and open it with Visual Studio when I debug that application it shows following error:
"Could not load assembly because this assembly is built by a runtime newer than the currently loaded runtime"
I don't know how can I solve this problem and test application locally.
Please help me.
This errors happens when the DotNet framework you are using is of older version than the one used to build the assembly. You need to check which version of framework is used to build those assemblies and then use the same or higher to debug too.
I was getting this same error when running an installer for a Windows service, even when running the installer on the PC the installer was built on.
It turned out that although the Windows service project had been updated to .NET 4.5, the Setup project that was making the installer was still set to use .NET 2.0.
To check if the Setup project is using an older version of .NET than the project to be installed, in the Visual Studio Solution Explorer:
Expand the Setup project;
Under the Setup project, expand Detected Dependencies;
Under Detected Dependencies select Microsoft .NET Framework and check the Version property. Select the appropriate .NET version from the dropdown list;
Re-build the Setup project to create a new version of the installer.
This error can have a lot of other reasons, too. I had the same problem, and nothing helped until I stumbled across this:
TlbExp.exe error:This assembly is built by a runtime newer
I just ran into this issue when the assembly was built with a target framework of .NET 4, and v4.0.30319 was installed on the server, and other 4.0 apps were running successfully.
The problem arose because the app had originally been built targeting 2.0, and new 4.0 assemblies were pushed, but not the app.config file, which we generally update separately.
This means the supportedRuntime attribute was not updated in the config and caused the error. Adding the following to the app.config fixed our issue:
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
One the the assemblies reference in the project might be built using a newer version of .net, check version of every assembly reference and correct accordingly.
Also check the application pool that this web site is running as. It could be framework 2.0 default on some older windows servers. Change it to framework 4.0.

Errors Running ASP.NET 1.1 on IIS7 (applicationHost.config)

I am trying to port an existing ASP.Net 1.1 website to another web server that currently runs IIS7 and a number of websites that target either .Net 2.0, 3.5 or 4.0. All other sites continue to work perfectly. Unfortunately, I can only browse static files on the newly imported site. If I try to access any of the Features in IIS7 for the new site I get the following error dialog:
There was an error while performing
this operation.
Details:
Filename:
\\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Error:
I followed the instructions on this page but am at a loss as to how to get this working.
I encountered this problem too this afternoon.
I did a quick google and found others with the same issue on the asp.net forum. The issue seemed to be that
Here is what got me past this error, hope it works for you.
the runtime tries to load the
corresponding configuration, it
doesn't take the bitness of the
application pool into the
consideration. As you know, ASP.NET
1.1 is only supported on 32-bit. So if you have a 64-bit OS, in order to
run ASP.NET 1.1, you have to enable
32-bit applications in the application
pool. So, with the QFE/SP2 on 64-bit
OS (and only on 64-bit OS), the
runtime is incorrectly looking for the
1.1 version of the configuration under Framework64, which does not exist.
Workaround:
Create the Framework64 directory for 1.1
md \windows\microsoft.net\framework64\v1.1.4322\config\
Copy the 32bit config to 64bit config location created in step 1.
copy \windows\microsoft.net\framework\v1.1.4322\config\machine.config
\windows\microsoft.net\framework64\v1.1.4322\config\
http://blogs.iis.net/wonyoo/archive/2009/06/18/workaround-running-asp-net-1-1-on-vista-sp2-ws08-sp2.aspx

Create Installer for an ASP.NET web APP for multiple environments

I have created an ASP.NET website which accesses a DB. The DB can will be alrady installed at target machine. It can be anything from SQL server 2000 to SQL server 2008. Further more the target OS can be anything from Windows server 2000 to Windows 7. I have kept the target .Net framework version as .Net 2.0 to keep matters simple. Also, the target machine can be x86 or x64 or Itanium.
Do I need to create separate builds for different target platforms?
How do I create an Installer which will :
Put this website on a Virtual Directory of IIS server(can be any IIS version)
Detect the target platform and install the appropriate build
I need to do this either using the standard MSI installer of VS2008 or using WiX or any open source installer for that matter. Please help me with this since I am new to deployment projects.
Thanks
You can use softwares like InstallShield in order to create your installer. but InstallShield is not for free I think.
such programs have their own scripting language that simplify the operations that you want to do, like detecting which operating system is installed or which SQL Server version is installer, beside that they allows you to communicate with a certain function in a dll. You can call this function to do some logic or some validation.
You can use WiX to create an MSI that does what you've listed. It is free, and as well as including functionality for what you want also allows custom scripting for any custom logic needed.

Classic ASP using COM+ on x64 Windows Server 2008 and IIS7

(Note: I thought about posting this to serverfault, but I figured more developers have banged their heads against these issues than admins)
I'm trying to set up a web page that uses both ASP Classic and ASP.NET 2.0 in the environment mentioned above. After applying many common fixes on the web and a few lucky guesses, the ASP.NET 2.0 pages are finally running fine (Minus COM+). The ASP Classic pages aren't running at all.
So I'm thinking the x64 environment is a the cause of most of my problems. Is there anyone here using old COM+ stuff with ASP Classic and ASP.NET in x64 and IIS7 with some words of wisdom?
You need to set the application pool to 32 bit mode ("Enable 32-bit Applications" in advanced properties). Set anonymous user permissions correctly. More IIS7 ASP material from learn.iis.net.
When working with x86 stuff in one of the fancy new x64 environments, look over your shoulder at every opportunity for configuration settings that need to be applied to both sides(x86/x64) of the operating system.
My problems were being caused by two groups of configuration settings that had to be set in both x64 and x86.
To enter the settings in the x86 side, here are some tips:
Copy any needed DLLs into the sysWOW64 folder.
Use a 32-bit Console to launch utilities such as the SQL Server Client Network Utility (cliconfg) and Registry Editor (regedt32). Using the 32-bit console will launch these utilities from the 32-bit system folder (%windir%\SysWoW64). I made a shortcut pointed to %windir%\SysWoW64\cmd.exe and launched it as an administrator.

Resources