Getting Dynamic Linking working on classic ASP pages - tridion

I am currently doing a fresh installation of Tridion 2011. We were previously using 5.3 and are keeping the database. I have so far installed the database, content manager, two content delivery servers and am now working on setting up the presentation servers. All of our web pages are built using classic asp. I was advised that I should manually install the API (linking, broker and WAI) if I wanted my asp pages to use dynamic linking (see https://stackoverflow.com/a/12428237/1113475)
I have read through the documentation and it explains how to install the API as a .NET web service. I don't think this is what I want as my web pages are all classic asp. I assume I need to do something with the exe files in the Content Delivery\roles\api\windows directory but they do nothing when I run them.
When running the following code on my asp page
Server.CreateObject("cd_link.ComponentLink")
I get the error
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
/about/index.asp, line 196
800401f3
... but this is obviously going to happen as I've not got the linker installed
Additional Information
Server is 64 bit Windows Server 2008. Running IIS 7.5 but my application pool for Tridion 2011 is running in 32bit mode.
Creating other third party objects works fine. Like the Chilkat Crypt library.

From the Live Documentation:
From each machine that runs a Content Delivery Server Role, open a Windows command prompt, access the SDL Tridion 2011 SP1 installation media, navigate to the folder Content Delivery\roles\api\windows.
Install the deprecated Windows services by running the following commands:
cd_broker.exe -install
cd_wai.exe -install
cd_link.exe -install

Related

Silverlight 5.1 app breaks when moved to new server

I inherited a Silverlight 5.1 asp.net application which has been running successfully on a Windows 2008 R2 server running IIS 7 for many years. I've been tasked with moving this application to a Windows Server 2016 Standard machine with IIS 10.
I installed Silverlight 5.1 (client) and the Silverlight 5.0 sdk on the Windows 2016 machine but otherwise made no changes. The machine has Framework 4.7.2. Several other asp.net applications are hosted on this server, but this is the first Silverlight application.
I tried simply copying the old application to the new server, and also rebuilding and publishing the application from the source code to the new server. I've tried running under both http and https. In all cases I get the error as described below.
When I navigate to the application using IE 11 with the Silverlight plugin installed I get a popup, "Load operation failed for query 'GetUser'. [HttpWebRequest_WebException_remoteServer] Arguments: NotFound..." and etc.
Nothing is logged that can be seen in the Windows event viewer.
Using Fiddler I can see that the browser is making this call first and getting a 404 Not Found error:
GET http://xxx.xxx.xxx.xxx/ClientBin/PMSys-Client-Web-AuthenticationService.svc/binary/GetUser HTTP/1.1
Referer: http://xxx.xxx.xxx.xxx/ClientBin/PMSys.Client.xap
Looking in the source code I see there is a class named "AuthenticationService", which derives from System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase, which in turn has a GetUser method. I can also see the file PMSys.Client.xap in my "ClientBin" folder. I assume some Silverlight magic inside PMSys.Client.xap creates the path http://xxx.xxx.xxx.xxx/ClientBin/PMSys-Client-Web-AuthenticationService.svc/binary/GetUser.
Using the same instance of IE 11 and Fiddler, but calling the old, successful machine, I notice that it gets Silverlight.js first, and then makes the same call to ...binary/GetUser. On the new, failing machine there is no call to get Silverlight.js. I assume this is a clue.
I can run this application in debug mode in Visual Studio 2017 on my local machine. The App.xaml.cs file contains a method "Application_Startup". This method calls WebContext.Current.Authentication.LoadUser(), which in turn calls this bit of code:
public EntityQuery<User> GetUserQuery()
{
this.ValidateMethod("GetUserQuery", null);
return base.CreateQuery<User>("GetUser", null, false, false);
}
This works on my local machine. I assume this is the "GetUser" call that is failing when I visit the application on my 2016 server; my understanding of Silverlight is that this "GetUser" call is made by the Silverlight runtime in the browser to the server.
My question is, what am I missing in my setup that is causing the 404 error? Why does the old, successful application load Silverlight.js, but the new, failing application does not?
This seems to be a server-side problem. If I paste the path http://xxx.xxx.xxx.xxx/ClientBin/PMSys-Client-Web-AuthenticationService.svc/binary/GetUser into a browser address bar I get a 404 error when I hit the new, failing site. For some reason IIS is simply not serving up Silverlight stuff. But if I pass that same path to my old, working application I get the usual browser prompt, "what do you want to use to open this file," and the result of the call streams down to me.
On both the new (failing) and old (working) sites, if I paste the path of the referer, http://xxx.xxx.xxx.xxx/ClientBin/PMSys.Client.xap, into the browser address bar I get the usual prompt, "what do you want to use to open this file."
I've checked every IIS setting comparing the old site to the new site and they are in agreement, including "Full Trust" and the existence of the .xap, .xbap and .xaml mime types.
Does something else need to be installed on my server in addition to Silverlight 5.1 and the 5.0 SDK?
I've seen several posts about installing RIA Services, but this appears to be a Silverlight 4 issue. RIA services are not installed on the old, Windows 2008 machine and the application is running successfully there. From what I've intuited RIA services need to be installed on the development machine in order to reference the "System.ServiceModel.DomainServices" libraries, but these become part of the deployment in Silverlight 5, so there is no need to install RIA services on the web server. I have confirmed that these libraries are in the deployment.
The answer is to enable HTTP Activation for the WCF Services under the Add Roles and Features Wizard, see this SO answer

Master Data Services Web Application Issue

I am trying to create a Master Data Service Web Application. So far, I have not succeeded with this activity.
I have check on internet for possible solutions but:
The .NET 3.5 and 4.5 features are checked, the svc file is present, but everytime I run the Master Data Configuration Manager I see the the warning about Internet Information Services.
I do not what else do I need to install or configure. When I try to access the URI of the web application, this does not show anything.
I am using Windows 8 and Sql Server 2014
When this happened to me I discovered I needed to execute the MDS Configuration Manager on the virtual machine's operating system rather than my local machine.
These IIS settings exist on that Windows Server, not your local machine.

How can i solve this Crystal reports error?

I have just completed developing my web application. I was trying to deploy it to test it. When i was doing that It first gave me crystal reports related assemblies missing error then I took all Cr assemblies from my GAC to the bin, republished and redeployed my application # someee.com
Now that error was gone but then It started giving me the following error:
Server Error in '/' Application.
An error has occurred while attempting to load the Crystal Reports runtime.
Either the Crystal Reports registry key permissions are insufficient or the Crystal Reports runtime is not installed correctly.
Please install the appropriate Crystal Reports redistributable (CRRedist*.msi) containing the correct version of the Crystal Reports runtime (x86, x64, or Itanium) required. Please go to http://www.businessobjects.com/support for more information.
All the other pages in my web app are opening perfectly but there is only one page which throws the above mentioned error. That is when the user clicks 'generate report' button on one page. This button actually loads the report and shows it in the Crystal report viewer on the same page. It works perfectly on my local server.
My application uses 2008 R2 DB server(also deployed on somee.com) , CR assemblies version = 10.5.3700.0 and it is an ASP.net web application # 3.5 .Net framework.
I know that if I will install a CR run time package then the error will go but i cannot take that option as I don't have a remote desktop connection to my web server because it's free one. (www.somee.com)
Can someone help me with this issue?
You need to actually install the CR runtime on the server as suggested because there are native libraries and registry keys to be set on the server apart from the .net dlls.
Not all hosting sites support CR so you need to find some other hosting provider that also offers CR.
Hello this is also my problem.. and as i search .. i found this solution
1) Go to the C\inetpub\wwwroot folder on any machine that has either/or crystal report runtime engine installations. For my purposes, I just went to the one on the 2008 server I'm installing on.
2) Copy the aspnet_client folder in the wwwroot directory.
3) Paste this folder in the website directory folder. I assume this would work with a web application that was created from a virtual directory as well, just paste it into the virtual directory.
You may be able to avoid this by creating all of the necessary folders and sub folders, then copying over each file into your web application project on your development machine, in order to include them in your published, complied web application. If this is confusing, just perform the steps above in the deployment environment.
Credits to jasonHall of code project
hope it works for you

Classic ASP using COM+ .Net Interop 64 Bit Windows Server 2008 IIS 7 Server.CreateObject Fails

I am having an issue related to executing a .Net dll from a classic asp application on a 64 Bit Windows Server 2008 server running IIS7. The situation is as follows:
I have written a .Net C# assembly to perform some encryption tasks. This assembly has been made available to the classic ASP environment via inheriting from ServicedComponent, ensuring the assemblyinfo file has the ComVisible(true) attribute, and it has been installed using the "regsvcs" command line.
When testing on my own desktop (XP running IIS6) everything worked fine. When moving to IIS 7, Windows Server 2008 I get the infamous "ASP 0177 Server.CreateObject failed".
I have tried the following to no avail:
Ensuring the ASP and Script Extension features were installed on the server, as this is not the default for IIS7. This allowed me to execute simple ASP commands, but not server.createobject for the .net assembly.
Enabled 32 Bit application support for the app pool supporting the classic asp site
Used NetworkService as the identity for the app pool supporting the classic asp site
Tried registering dll using regsvr32, which failed
I am able to create other objects such as "scripting.filesystemobject"
Moving dll's to the wow64 directory and then using regsvcs to register them.
And yes when I have been executing the regsvcs commands they have been from a command line launched with "RunAs" Administrator. The regsvcs commands have registred successfully
from both the 64 and 32 bit versions. However, when used from the classic asp application, it fails.
This question is closely related to this one. However, I think this question was more related to using tools on the server as opposed to a programatic problem similiar to mine.
Anyone have any more ideas to try?
After a lot of help here and some more research, we finally came across the answer. To solve our issue we did the following:
No longer inherit from ServiceComponent (This is ok, since we are not actually leveraging any specific COM+ features)
Utilized the following commands to install the component, which must be done in order:
gacutil /i "C:\Inetpub\wwwroot\ASPTest*name of dll*"
regasm /tlb "C:\Inetpub\wwwroot\ASPTest*name of dll*"
This process eliminated the original errors and also had the added benefit of being able to replace the dll while IIS is running.
Try this
Component Services -> Computers -> My Computer -> COM+ Applications
Open a COM+ Application object.
Open Components.
Right-click on a class and select Properties.
Under "Advanced" there is a check box for "Allow IIS intrinsic properties".
It works for me
Create a vbs test file and try to create your COM object there. If you can't (i.e. you get the same error) then your component is not registered correctly.
If you can - then it was installed correctly and the problem is with the lack of permissions for the account your application is executed under in IIS.

Why is IIS not serving aspx pages?

I'm deploying an ASP.NET application to Windows Server 2003 under IIS
IIS is serving html pages fine but I get a page not found when I try and serve IIS pages
You may need to "register" IIS for ASP.NET applications. As an administrator, run the command "%systemroot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i". In addition, you may need to convert your web site to an application through the IIS management console.
By default, IIS has ASP support disabled in IIS6.
A server running a member of the Microsoft® Windows® Server 2003 family supports application server functionality, with Microsoft ASP.NET as an option that you can enable when configuring the application server role. To deploy ASP.NET Web applications to a production server, you must be sure to enable the ASP.NET and Internet Information Services (IIS) roles on the production server before you distribute the application.
See here for instructions to enable it:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/9fc367dd-5830-4ba3-a3c9-f84aa08edffa.mspx?mfr=true
Other possible reason could be Web Service Extensions, where ASP.NET version could have been disabled. My other post here explains steps to solve this.
Make sure the right .NET framework is installed properly
Make sure the ASP.NET extension is enabled
Under website properties, ASP.NET tab, make sure the right version is set.
After having this same issue and trying all of the above without any luck. We reinstalled SP2 for Windows 2003 and this resolved our issue. I too have seen this problem resolved a few times with the other answers. Most of the time just reinstalling .Net 2.0 resolves the issue but not this time.
For future reference, this could also be the issue:
IIS on a Windows Server 64-bit can only to run in either 32 or 64 bit mode.
In short you need to:
1) run adsutil.vbs to enable 32 bit asp.net apps on win 64
2) re-register IIS calling aspnet_regiis.exe
3) re-open IIS Manager, go into Web service extension list and ensure ASP.Net version {2/4.xxx} (32-bit) is set to Allowed
(You might need to do Steps 2 and 3 for both Framework 2.0 and 4.0 if you want to run asp.net apps on both versions)
Full details are in the following link: http://support.microsoft.com/kb/894435
Another future reference in case this is helpful to anyone who used a similar path to mine.
My back end for the ASP.NET app was MySql not Sql Server, which for me meant having a mysql connector, the reason my IIS was not serving the .aspx file is because on my development environment I was using a different version of the MySql connector than the one installed on my production environment, I updated the MySql connector on the production server to match the version Im using on the development environment and it worked great.

Resources