Databases :: Vs2008 Website Project Cannot Add Reference To Oracle.DataAccess.dll
Feb 28, 2011
I have a vs2008 Website project(it was converted from vs2005), when i right click the Website node in the solution and open the property page, i select the references link, then click add reference to Oracle.DataAccess.dll(11g, 64bits), Version=2.112.2.0 in the website BIN directory, it doesn't work, i don't see the Oracle.DataAccess.dll is added, Can you give me any advice why the website project can not add the Oracle.DataAccess.dll ? And I can add rOracle.DataAccess.dll to my other Web Application project, what difference between Website project and Web applicatoin project caused the issue? Since i can not add the Oracle.DataAccess.dll , when i compile, it gave the error:
Could not load file or assembly 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format.
In development I installed "ODAC Entity Framework and LINQ Beta (11.2.0.2.30)" so that we could have a 32 bit version of Oracle.DataAccess for ODP.Net. In Visual Studio 2010 (on Windows Server 2008 R2) I made a reference to:
C:Oracleodp.netin4Oracle.DataAccess.dll.This adds: <add assembly="Oracle.DataAccess, Version=4.112.2.30, Culture=neutral, PublicKeyToken=89B483F429C47342" /> to the assembly in the web.config.
We set the AppPool to Enable 32 bit applications and everything works great. For anyone who doesn't know the story here, we do this because Visual Studio 2010 runs in 32 bit so you need the 32 bit ODAC/ODP.net components to get a development environment running. I then publish the files and move to a 64 bit machine.
I downloaded the "ODAC112021Xcopy_x64.zip" Then ran: install.bat odp.net4 c:oracle odac and I can see the Oracle.DataAccess.dll file at: C:Oracleodp.netin4Oracle.DataAccess.dll. Then added c:oracle;c:oraclein;c:oraclein4 to the System Path.
At this point I would think I just replace the version and PulbicKeyToken in: <add assembly="Oracle.DataAccess, Version=4.112.2.30, Culture=neutral, PublicKeyToken=89B483F429C47342" /> on production to the versioin installed on prod. So first thing I do is just remove that line on production to see what error I will get. And I still get the same error:
System.IO.FileLoadException: Could not load file or assembly 'Oracle.DataAccess, Version=4.112.2.30, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Actually this is if I move the new dll into the applicaitons bin directory. If I remove the dll from the directory I get: Could not load file or assembly 'Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.
So I put the line back in.
I right click on on the new Oracle.DataAccess.dll and click properties. In the details tab I see verion is 4.112.2.0. That makes sense. The 64 bit XCopy version is an earlier build then the 32 bit Beta that comes with Entity Framework and LINQ(Version=4.112.2.30).
So on production I change the Version attribute to: 4.112.2.0. But now I get the same error: System.IO.FileLoadException: Could not load file or assembly 'Oracle.DataAccess, Version=4.112.2.30, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) (This is with the new dll back in the web app's bin directory as is the rest of the thread).
It's still looking for the same version of the assembly. Why is it doing that? The web.config has a connection string with the ODP.Net provider type (Oracle.DataAccess.Client). Which would take from the assembly reference. It should not care what the version number is. Could there be something in code somewhere that is specifically looking for the old dev box version? Just what is the way to make it use the new assembly?
I would think the system would just know where to find the new dll. Just as in development the add reference dialog knew that the dll was in c:oracle... rather then c:program files(x86)... like out-of-the-box Microsoft assemblies.
I want to insert some values (from asp.net web application) in a table on oracle DB that hosted on a machine rather than the machine that hosts the asp.net application
i use "oracle.dataaccess.client" and the following function
[Code]....
but i get the following exception
The type initializer for "Oracle.DataAccess.Client.OracleConnection" threw an exception
I have a vs2008 web application. it built fine and it was runing fine use visual studio development server, but when i use IIS web server, it gave me the following error.
I have a Web service which, when updated on one computer with VS2008 works perfectly fine, but on another computer does not. The critical difference is the contents of the auto-generated Reference.cs.
In the correctly functioning environment, the methods have fully qualified class names, refering to classes in a class library. However, in the problem environment, the class names are unqualified and partial classes are declared near the end of the file. E.g.
[code]....
The code is under source control. Checking out to the working environment works straight away, checking out to the problem environment will only work if the reference.cs is manually edited to be like the working environments. Transferring the project manually from problem environment to the working one only requires an "Update Web Reference" to be performed to allow compilation. Both Reference.cs files claim to be auto-generated by the same tool version. The settings from the good environment have been exported to the other. No success so far...
I'm aware of the following two different types of web projects in Visual Studio 2008:Website projectWeb application projectA web application project can reference a signed assembly as long as the web application's assembly is also signed with the same key. However, this doesn't work with the website project because there is no place to sign an assembly. I think this is because the assembly is compiled dynamically on the server?
Anyway, is it possible to get the website project working with this signed assembly? Or will I have to convert this website project into a web application project?Edit:The following situation has required me to ask for clarification in this matter:I have a class library that is being referenced by several other projects in my solution in Visual Studio. One of the projects is a windows application that will be deployed to specific external users. In order to make sure that the application is using the correct assembly and to also prevent others from using the assembly (I am aware of the limitations with respect to its effectiveness), all assemblies have been signed and all the classes in the library are declared as Friend (internal).
The website project doesn't seem to have a way for me to sign its assembly and I get the following message when attempting to use anything from the library: "CLASS is not assessable in this context because it is 'Friend'", which is to be expected.The following attributes are inside the AssemblyInfo.vb file in my class library project:
My Conclusion:Looks like the cleanest way to do this would be to convert the website into a web application but this would require a bit of time to do since our site is pretty fleshed out already and as pointed out in other discussions, can be quite a pain to do. Going forward, I think creating a web application in the first place may have been a better idea and much more flexible for future development.
Just to test, I created a blank website and a blank web site project.
When I added a referece to web site by doing right click and add reference it added the dll inside a BIN folder but on ther other hand when I did the same for a web site project it created a reference folder for me and then added the dll under the reference folder.
I need to migrate a ASP.NET application from 1.1 to 3.5. I have gone through the answers on this forum already, but still have some questions
should I convert the application from 1.1 to 3.5 directly? OR convert it to 2.0 first and then to 3.5 and the reasons for doing so.Is there any article that walks through the whole conversion process from 1.1 to 3.5 with solutions for any typical issues encountered during the conversion process?Is it possible to convert a ASP.NET 1.1 project to ASP.NET 2.0 using VS2008 OR do I need to use VS2005 IDE for doing so?
I have an ASP.NET project and want to include an XML file inside the project to store some relatively static data. To do this I selected "Add File" from the solution context menu and picked my XML file. Having added this to my project, I then wanted to load the XML from within code. I tried the following:
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("MyData.xml");
I also tried:
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("~/MyData.xml");
But it seems to be looking in the current directory (i.e. my VS2008 directory) and not the project. Am I going about this wrongly? Is there a way to simply reference a resource that's embedded in the project like this?
I need to uplaod photo in my VS2008 project. Can I use FileUpload control or link button is the better option. Also, how to do the upload using both controls.
As the title says I have a Win 7 64 bit dev machine, Win 2K3 32 bit production box and I run against Oracle 10g which Oracle clients do I need to run? Do I need to run the Oracle 32 and 64 bit clients? And if so what versions?
I need to find a way to connect to the remote Oracle server without a DSN. There are some practical problem for accessing the server using a DSN. I need a way to connect to Oracle server like I connect to SQL Server etc. For example, in SQL server, I can connect directly with server using Servername (IP adress) + Username + Password + DB Name. Any way to connect to the Oracle server like in SQL Server we do ??
I have an Asp.net web application targeting .Net2.0 and my databse is oracle, I used SqlDataSource Control to communicate with oracle database its working fine on my development server, but on my production Oracle is 64 bit so im getting an error like
"<asp:ControlParameter doesnot have a property DbType="Int32"> " i tried with Int64 also but still im getting the same error
following is the markup of sqldatasource i used < asp:SqlDataSource ID="sdsEmployees" runat="server" ConnectionString="User Id=user;pwd=user1;server=prod" ProviderName="System.Data.OracleClient" SelectCommand="GetEmployeeInfo" SelectCommandType="StoredProcedure" OnSelecting="sdsEmployees_OnSelecting"> <SelectParameters> <asp:ControlParameter ControlID="txtNumber" DbType="Int32" /> </SelectParameters> </asp:SqlDataSource>
i am doing cmd.ExecuteNonQuery();I am able to get the number and varchar2 values from output parameters. But i am unable to get output from Ref Cursor. (How can i get this...)If i use dataadaptor then i am getting the datatable in the dataset(but i am not getting the other two parameters(where will get the other two??)...
Is there a difference between the Web Setup Project in VS2008 and the Web Deployment Project that I keep reading about on this site? More importantly, how much of a help is the deployment project over just using the setup project?
I am developing a web application with back end as Oracle. I call the procedures from web application when ever some update, create or delete for the records needs to be performed. How to maintain the connection in these scenarios.
Can I open the connection and maintain it through out the application till user logs out?