Hi,
I do site by site update old web connection 3.0 to new web connection 6.20.
Web connection 6.20 was installed, added new project, IIS configured automatically, and test page is OK.
New project directory is
D:\webconnectionProjects\Emmis2012\deploy - project in here
\web - IIS folder with web config; \web\bin - wc.dll with wc config
\data
\build
Old project direvtory is
D:\inetpub\wwwroot\Emmis2000\ IIS folder with Index.htm (The start and login app file) wc.dll and wc config
D:\wwserver project
I moved old project files to new location and updated main program to plugin old files with update process program.
File Index.htm has ```html
A 404
error is a not found error which means the URL you're trying to access does not actually find anything to process.
Make sure your script maps are set up correctly. The Web Connection ISAPI dll cannot be accessed directly (ie. /wconnect/bin/wc.dll
) out of the bin folder as the bin folder is restricted for execution. It does however work fine if you use script maps and map the DLL there. If you move the DLL make sure you adjust your URLs and you ensure that you can execute the dlls directly. However I'd highly recommend you don't reference wc.dll
directly but instead create a script map and use wc.wc
or another script map of your choosing instead.
If you are upgrading to 6.20 you probably should be using the .NET Module rather than ISAPI operation.
Hope this helps,
+++ RIck ---
Hi Rick,
Could you please explain about automatic mapping by DO CONSOLE 'SCRIPTMAP'? Is it going to change foxpro code in wwserver.process method or web configuration file or both?
Thank you, Kuzma Karbachinskiy kkarbachinskiy@oneworldonestop.com
No it's only creating the scriptmap in IIS. It does nothing to your code.
You will have to manually add the script map routing code. However, if you were using wc.dll directly you likely were using hte old method~parm~parm
syntax which won't need any changes. You can just do a search and replace for wc.dll
to wc.wc
(or whatever scriptmap you use) in both your code and your HTML content to switch. That should be step one.
Once that's working you can look at cleaning up your URLS from the old wc.wc?method~parm1~parm2
syntax to Method.wc?parm1=val&parm2=val2
syntax. But that's not required - the important thing is to switch to script maps so you don't have to deal with the security issues that come with .dll
extensions in URLs as well.
+++ Rick ---
Hi Rick,
I did wc.wc?method~param~param
and have the question about web config file. it was updated with adding to handlers section.
<handlers>
<add name=".wc_wconnect-module" path="*.wc" verb="*" type="Westwind.WebConnection.WebConnectionHandler,WebConnectionModule" preCondition="integratedMode" />
<add name=".wcs_wconnect-module" path="*.wcs" verb="*" type="Westwind.WebConnection.WebConnectionHandler,WebConnectionModule" preCondition="integratedMode" />
<add name=".wcsx_wconnect-module" path="*.wcsx" verb="*" type="Westwind.WebConnection.WebConnectionHandler,WebConnectionModule" preCondition="integratedMode" />
<!-- <add name="WC Handler" path="*.wc" verb="*" modules="IsapiModule" ScriptProcessor="D:\webconnectionprojects\Emmis2012\web\bin\wc.dll"
resourceType="Unspecified" preCondition="bitness32" /> -->
</handlers>
I had to comment it. Otherwise static page index.htm can't be displayed. It desplays http 500.17 errors with red in added code. It is working fine and I hit the server. I read your blog 'Creating .DLL Script maps with the Web Connection .NET Managed Module', but I'd like to diminish volume of work. Is it OK that I did?
Thank you, Kuzma Karbachinskiy kkarbachinskiy@oneworldonestop.com
If you're running on IIS 7 or later you have to have the <handlers>
section otherwise there's no script mapping.
If you're upgrading you probably have an old <httpHandlers>
and <httpModules>
section in your web.config. Remove those as those conflict with the new settings.
Best thing to do is:
- Create a new test project
- take a look and compare the
web.config
from new and old projects
+++ Rick ---
I did as you said. It did not help me. Old application didn't have web config. I have IIS question. I had to run old application on the same machine and IIS has mix old components like net 3.0 and modern ones like net 4.5. Can it be the case? I'll continue to think about.
Thank you, Kuzma Karbachinskiy kkarbachinskiy@oneworldonestop.com
Hi Kuzma,
Don't know how to help you with your specifics. Web Connection 6 using .NET Modules and a much newer version of IIS will be different so you can't possibly expect things to just work as they were when migrating to the newer platform.
As I suggested before, for old applications my recommendation is to create a new project and move the old code into the new project. This way you:
- Get the configuration set up with current standards
- Get auto-configuration of IIS
- Automatic .NET Module support (unless you explicitly choose ISAPI)
- Get up to date on a more maintainable way to build your application
The idea is that you basically create a new project, get the hello world running, then add your existing Process class into the new application. Assuming you pull in and set up all of your dependencies in yourServer::OnLoad()
you should be able to get your app set up with this new configuration relatively easily.
If you don't want to go this drastic but well worth it route of a new base project, then I'd recommend you still set up a new test project for reference, so you can compare what the configuration should look like and you can then compare between what you have and what a new project has.
I also recommend you read through the entire IIS configuration topic. If you have an old application that was set up a certain way there will be changes required and reading through this whole document will ensure that you check all the necessary areas to make sure your app can run properly.
IIS Configuration for Web Connection
+++ Rick ---