I'm having trouble migrating the DevExpress elements of an ASP web application from one server to another. I basically copied the files and database over into a new server location and made some adjustments to the web.config file to get it connected to the new database. That got most of the site working and pulling data correctly, but the DevExpress pieces are coming up as undefined.
As far as I can tell, the references in the web.config file and on the respective pages is correct and the dll files themselves are listed in the bin directory so I'm rather stumped as to why they aren't working.
Web.config sample
<compilation debug="true" strict="false" explicit="true">
<assemblies>
...
<add assembly="DevExpress.Web.ASPxGridView.v10.1, Version=10.1.6.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A" />
<add assembly="DevExpress.Web.v10.1, Version=10.1.6.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A" />
... and so on
Dashboard.aspx sample
...at top of page...
<%# Register Assembly="DevExpress.Web.ASPxGridView.v10.1, Version=10.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxGridView" tagprefix="dx" %>
This was an inherited project, so I haven't tried rebuilding the application in case my machine imports my settings into the project (example: it was made in VS 2008, and I'm running VS Community 2015).
Are there any quirks to making a transfer like this that I just don't know about or has anyone else experienced this issue? Any help would be appreciated.
Thanks
The first thing that comes to mind is that version 10.1 of DevExpress is a very old version, released in Aug '10. It does not support .Net 4, so you'll need to make sure the application pool for IIS running this web app is .NET CLR Version 2.0.
Note that if you are running in Windows Server 2012, it's actually tricky to install .Net 3.5. Google how to do it if you need to.
The next to check of course if all of the dll's referenced are in the Bin folder.
Could you write the error message you are getting? If it does not have any extra information, perhaps the event viewer of the server (under windows logs/applications) has a more detailed description.
Related
Probably a noob question but what version of .NET is used in a ASPX web application? Is it the version defined in the project propperties or the one defined in the web.config file of the website?
I need to know this because an API I am using in the web application is closing all non TLS1.2 protocolls. And as far as I understand TLS1.2 is the default in .NET 4.5. The server is Windows Server 2008.
Visual Studio uses web.config values to initialize the property pages. So, they're one in the same.
You see the .NET version from the property pages in the web.config similar to this:
<configuration>
<system.web>
<compilation targetFramework="4.5" />
</system.web>
</configuration>
If you change the target framework in the project properties and save, you should see the updated target framework in that value in your web.config file.
after publishing mvc web application to IIS 7.0, the problem was that the reports are not working, however, i did the following but it didn't worked :
Installed MICROSOFT® REPORT VIEWER 2012 RUNTIME package from http://www.microsoft.com/en-us/download/details.aspx?id=35747
After installation, found Microsoft.ReportViewer.WebForms.dll in
C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer
go to IIS Manager --> choose the Web Application which contains the reports, and then choose Handler Mappings
in Handler Mappings, Add a new Handler, Set its info as the following:
Request Path : Reserved.ReportViewerWebControl.axd
Type: Microsoft.Reporting.WebForms
Name: Reserved.ReportViewerWebControl.axd
Found the below handler got added automatically in web.config under
system webserver section in
<handlers>
<add name="Reserved-ReportViewerWebControl-axd" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
I'm using Visual studio 2013, dot net framework 4.5
Please guide me to solve this issue. Thanks in advance.
Make sure all the files related to RDLC are there in the published files.
If it is not there copy and paste it from Project file
Copy .rdlc folder to bin folder in the project directory.
Deploy your project to the server again.
Hope it'll solve your issue.
Best-
I'm using a view in Oracle DB to produce the report. That view is not working properly. We just dropped and re-created the view and it is working fine. Thanks for all the responses.
I have moved a couple of DLL files in the BIN folder but Visual Studio is not picking these up. Do I need to manually register them for 1.1?
I know in later frameworks, it is as easy as moving DLL files in the BIN folder but the same is not working for framework 1.1. Is there anything I am missing?
You should reference the DLL in the project.
More info below;
http://msdn.microsoft.com/en-us/library/wkze6zky(v=vs.71).aspx
Running the MSI file and Restarting Visual Studio 2003 resolved the problem. ASPOSE.CELLS.DLL is 1.1 compatible so backward compatibility was not the issue.
You just need to declare your assemblies to your web.config just like the following:
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="MyDll"/>
</assemblies>
</compilation>
</system.web>
</configuration>
You'll have also to make sure that your dll are compiled for .NET 1.1. Or else, it won't work.
Hope this helps you. Let us know if it is still not working.
I have a web application that I wrote in Visual Studio 2008 that targets .Net Framework 3.5. To test it I used a machine running Windows 7, which means IIS7. My application works just fine on this but when it was deployed to a development server (running server 2003, so IIS6) it doesn't work.
The first few lines of my web.config file are as follows:
<?xml version="1.0"?><configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
The error I get has to do with the type= part of the sectionGroup tag. I don't remember the exact message, but it is something along the lines of 'invalid tag' or 'invalid attribute.'
I have two questions:
First, is anyone savvy enough with IIS to know why this works in 7 and not 6?
Second, why do I need the sectionGroup tag? What does it do?
I checked the dev server to make sure the right version of .net was installed. It has 2, 3, 3.5, and 4, so I should be covered on that front.
I'm rather new to .net (probably obvious by now), so please forgive me if this has been asked a thousand times and it looks like I'm beating dead horses. My googling and searching of stackoverflow didn't provide a solution.
SOLUTION:
The whole problem was IIS not being configured correctly. The asp.net tab of the website's properties was set to 2.0.something. We changed it to 4.0.something (3.5 wasn't an option) and everything works just fine.
Your framework targets .NET 3.5. It probably doesn't matter whether you use the scripting section or not, but the scripting section is configured with 3.5. This is used for the client scripts of the ASP.NET Ajax Scripts.
If you run your application in IIS 6, it depends on which framework version you have configured for the application pool. If you mix your applications, it might start in the wrong version. Check that you configure your pool correctly. Unfortunately I don't have an IIS 6 here I can't remember exactly how you do that. Important is that you have no other application in another .NET version running in the same pool.
I have third-party workflow software (Captaris Teamplate) that's referencing an assembly from my project that's referencing other assemblies from our project solution all through the GAC.
When our application executes, it invokes a Captaris Teamplate method to create a workflow process which in turn uses project assemblies in the GAC to store data into
a database.
The problem is when I compile my project and remove assemblies from GAC replacing them with new versions, but when I run entire project, Captaris Teamplate throws an error:
Exception Type: System.IO.FileNotFoundException
Message: File or assembly name VBAssembly, or one of its dependencies, was not found.
FileName: VBAssembly
FusionLog: === Pre-bind state information ===
LOG: DisplayName = VBAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
That is, it wouldn't give me the name of the assembly DLL file. It's trying to find nor version it's looking for. Troubleshooting of such an issue is like shooting in the dark and it can kill days of deleting old assemblies that are kept in the ASP.NET temporary files folder, project folder and website folder (inetpub), rebooting, etc., testing for error, getting an error, searching for some other old assemblies, etc.
So my questions are:
Is there a technique that would allow me to extract more information on this exception such as the name of the assembly and version that is missing?
Is there an easy way to clean up all those old assembly versions from the system at compile time?
Any other suggestions in dealing with this DLL Hell and/or Captaris Teamplate?
We're using ASP.NET version 1.1 with Visual Studio 2003 with Captaris Workflow 5.0.
Another thing you can do is "forcibly" reference the version of the assembly you want through the web.config. Here's a sample of what I have in my web.config to make sure I'm accessing the proper version of Crystal Reports in my web app...
<assemblies>
<add assembly="CrystalDecisions.Web, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Enterprise.Framework, Version=11.5.3300.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
I'm sure you could do the same thing to reference your libraryies, you just need to make sure they have a strong naming key so that there is a PublicKeyToken to reference.
If at all possible, avoid the GAC. It lends itself to DLL Hell. The VBAssembly may actually be unmanaged, and may have been removed from the WINDOWS/system32 directory.
Maybe you can create a binding policy that will redirect any request for the assembly you removed from the XXX to the GAC to the new location. See Binding Policy.
Or you can use .NET Reflector.
However, you also may just want to call up the vendor and ask for help from them. Most of the time, these guys take a pretty good pride in their products so they will take the time to step you through your problem over email or chat. I just ran into a similar issue with a third-party spreadsheet component that I was using and even though the company was in Germany, I was able to resolve the issue pretty quickly by having them recompile the component on their end and when they sent me the new DLL it worked just fine.
Probably the most effective way is to run FusLogVW.exe (part of .NET Framework SDK, see Assembly Binding Log Viewer (Fuslogvw.exe)), which will log every bind failure that happens. That way, you can list failed binding attempts from your application.
Use Dependency Walker to find out what dependency is missing.
A starting point is to try to use the 'Clean Solution' option and then build the solution.