Quantcast
Channel: West Wind Message Board Messages
Viewing all 10393 articles
Browse latest View live

Issues with PageParser

$
0
0
Issues with PageParser
Web Connection 5.0
Issues with PageParser
Jan. 15, 2013
01:43 pm
3OY0TFA39Show this entire thread in new window
Gratar Image based on email address
From:Geoff Bannoff
To:All
I found a problem with the web page parser if I'm updating a lot of files.

My standard "start" program parses any web pages that I have updated in the last 3 days. Yesterday I updated about 30 files, and another 40 today. When I parse all 70 files, the parser consistently mangles 47th one. Restore the 47th web page and generated file from a backup, and it no longer gets parsed (as it now has an older date), but the next time I run the parser on the remaining 69 files, the 47th file gets mangled. Restore that web page and generated file from the backup, and the new 47th file gets mangled.

If I parse a smaller number of files--say just all the ones from yesterday, or just all the ones from today, the code gets generated without any problems. So it's not something in my code--it's in the parser.

When a file gets mangled, all the stuff at the top of the file gets lost--the usual stub and all the procedures I wrote--are lost. Here is the beginning of a mangled file:

Header = null form1 = null lblTitle = null ErrorDisplay = null txtAddress = null lnkGeocode = null txtLatitude = null txtLongitude = null btnGeocode = null lblGeoAddress = null txtQty = null ddlFile = null CTL0013 = null CTL0015 = null btnGo = null btnCancel = null grdNearby = null lblFoot = nullHIDDEN CTL0021 CTL0021 = nullFUNCTION Initialize(loPage)LOCAL __lcHtmlDODEFAULT(loPage)THIS.Header = CREATEOBJECT("wwwebhead",THIS.Page,"Header")THIS.AddControl(THIS.Header)

There is nothing before this in the file. Everything has gotten overwritten.

A workaround is to count the number of files being parsed, and reset the parser, like this:

m.nFiles=ADIR(aFP,'C:\inetpub\wwwroot\fpp\*.fp') && list of all web filesFOR m.nCount =1 TO m.nFiles* check modification dateIF aFP[m.nCount,3]>DATE()-3 m.pcount = m.pcount + 1IF m.pcount> 30RELEASEPROCEDURE WebPageParserSETPROCEDURETO WebPageParser additive m.pCount = 0endif ? m.pcount,' parsing',aFP(m.nCount,1) oParser.ParseToFile('c:\inetpub\wwwroot\fpp\'+aFP(m.nCount,1))ENDIFendfor

Maybe it takes about 47 files to overflow a string somewhere in WebPageParser?

It's been awhile since the parser has mangled any of my files, and we have backup system in place to handle that eventuality. But it would be nice to get rid of this problem.

.. Geoff


Re: Issues with PageParser

$
0
0
Re: Issues with PageParser
Web Connection 5.0
Re: Issues with PageParser
Jan. 15, 2013
02:54 pm
3OY0VYYIOShow this entire thread in new window
Gratar Image based on email address
From:Geoff Bannoff
To:Geoff Bannoff
Here's a fix.

After running the page parser, include
=sys(1104)
to purge things cached in memory.

Including sys(1104) after each web page is parsed allows all 73 recently updated files to be parsed without any file corruption.

.. Geoff


I found a problem with the web page parser if I'm updating a lot of files.

My standard "start" program parses any web pages that I have updated in the last 3 days. Yesterday I updated about 30 files, and another 40 today. When I parse all 70 files, the parser consistently mangles 47th one. Restore the 47th web page and generated file from a backup, and it no longer gets parsed (as it now has an older date), but the next time I run the parser on the remaining 69 files, the 47th file gets mangled. Restore that web page and generated file from the backup, and the new 47th file gets mangled.

If I parse a smaller number of files--say just all the ones from yesterday, or just all the ones from today, the code gets generated without any problems. So it's not something in my code--it's in the parser.

When a file gets mangled, all the stuff at the top of the file gets lost--the usual stub and all the procedures I wrote--are lost. Here is the beginning of a mangled file:

Header = null form1 = null lblTitle = null ErrorDisplay = null txtAddress = null lnkGeocode = null txtLatitude = null txtLongitude = null btnGeocode = null lblGeoAddress = null txtQty = null ddlFile = null CTL0013 = null CTL0015 = null btnGo = null btnCancel = null grdNearby = null lblFoot = nullHIDDEN CTL0021 CTL0021 = nullFUNCTION Initialize(loPage)LOCAL __lcHtmlDODEFAULT(loPage)THIS.Header = CREATEOBJECT("wwwebhead",THIS.Page,"Header")THIS.AddControl(THIS.Header)

There is nothing before this in the file. Everything has gotten overwritten.

A workaround is to count the number of files being parsed, and reset the parser, like this:

m.nFiles=ADIR(aFP,'C:\inetpub\wwwroot\fpp\*.fp') && list of all web filesFOR m.nCount =1 TO m.nFiles* check modification dateIF aFP[m.nCount,3]>DATE()-3 m.pcount = m.pcount + 1IF m.pcount> 30RELEASEPROCEDURE WebPageParserSETPROCEDURETO WebPageParser additive m.pCount = 0endif ? m.pcount,' parsing',aFP(m.nCount,1) oParser.ParseToFile('c:\inetpub\wwwroot\fpp\'+aFP(m.nCount,1))ENDIFendfor

Maybe it takes about 47 files to overflow a string somewhere in WebPageParser?

It's been awhile since the parser has mangled any of my files, and we have backup system in place to handle that eventuality. But it would be nice to get rid of this problem.

.. Geoff



Re: Issues with PageParser

$
0
0
Re: Issues with PageParser
Web Connection 5.0
Re: Issues with PageParser
Jan. 15, 2013
03:34 pm
3OY0XD7U7Show this entire thread in new window
Gratar Image based on email address
From:Geoff Bannoff
To:Geoff Bannoff
Alas, the problem still arises, but later. With sys(1104) fix, I get up to 82 files parsed without running into corruption. But the 83rd file now gets trashed.

I'll just have to keep the number of recent files below 82, I guess.

.. Geoff



Here's a fix.

After running the page parser, include
=sys(1104)
to purge things cached in memory.

Including sys(1104) after each web page is parsed allows all 73 recently updated files to be parsed without any file corruption.

.. Geoff


I found a problem with the web page parser if I'm updating a lot of files.

My standard "start" program parses any web pages that I have updated in the last 3 days. Yesterday I updated about 30 files, and another 40 today. When I parse all 70 files, the parser consistently mangles 47th one. Restore the 47th web page and generated file from a backup, and it no longer gets parsed (as it now has an older date), but the next time I run the parser on the remaining 69 files, the 47th file gets mangled. Restore that web page and generated file from the backup, and the new 47th file gets mangled.

If I parse a smaller number of files--say just all the ones from yesterday, or just all the ones from today, the code gets generated without any problems. So it's not something in my code--it's in the parser.

When a file gets mangled, all the stuff at the top of the file gets lost--the usual stub and all the procedures I wrote--are lost. Here is the beginning of a mangled file:

Header = null form1 = null lblTitle = null ErrorDisplay = null txtAddress = null lnkGeocode = null txtLatitude = null txtLongitude = null btnGeocode = null lblGeoAddress = null txtQty = null ddlFile = null CTL0013 = null CTL0015 = null btnGo = null btnCancel = null grdNearby = null lblFoot = nullHIDDEN CTL0021 CTL0021 = nullFUNCTION Initialize(loPage)LOCAL __lcHtmlDODEFAULT(loPage)THIS.Header = CREATEOBJECT("wwwebhead",THIS.Page,"Header")THIS.AddControl(THIS.Header)

There is nothing before this in the file. Everything has gotten overwritten.

A workaround is to count the number of files being parsed, and reset the parser, like this:

m.nFiles=ADIR(aFP,'C:\inetpub\wwwroot\fpp\*.fp') && list of all web filesFOR m.nCount =1 TO m.nFiles* check modification dateIF aFP[m.nCount,3]>DATE()-3 m.pcount = m.pcount + 1IF m.pcount> 30RELEASEPROCEDURE WebPageParserSETPROCEDURETO WebPageParser additive m.pCount = 0endif ? m.pcount,' parsing',aFP(m.nCount,1) oParser.ParseToFile('c:\inetpub\wwwroot\fpp\'+aFP(m.nCount,1))ENDIFendfor

Maybe it takes about 47 files to overflow a string somewhere in WebPageParser?

It's been awhile since the parser has mangled any of my files, and we have backup system in place to handle that eventuality. But it would be nice to get rid of this problem.

.. Geoff





Tracing an HTTP request

$
0
0
Tracing an HTTP request
Web Connection 5.0
Tracing an HTTP request
Jan. 15, 2013
11:03 pm
3OY1DFFOSShow this entire thread in new window
Gratar Image based on email address
From:Stein Goering
To:All
I'm trying to get my program to interact with a REST service. A typical request would look like this:

http://longwoodlive.org/d2l/api/lp/1.0/organization/info? - followed by several querystring parameters that are used to validate the request.

If I submit the above using wwHTTP::httpGet I get the desired response. However, for this one, which creates a user account, I need to Post a JSON string:

http://longwoodlive.org/d2l/api/lp/1.0/users/

I use AddPostKey(.F.,"<JSON text..>") to load the string, then execute the call with httpGet. My understanding is this should generate a POST request, but I am getting an Invalid Token message back from the service. Their techs tell me this may be caused by an invalid HTTP method, i.e. a GET instead of a POST. They also told me I should use SSL when making these calls, so I set lSecureLink on.

I then set up Fiddler to try and track this. I enabled the self-generated certificate so I could track HTTPS sessions. It looks like each of my hits generates 2 Fiddler entries, one without SSL and one with:

302 HTTP longwoodlive.org /d2l/api/lp/1.0/users/?&x_...
403 HTTPS longwoodlive.org /d2l/api/lp/1.0/users/?&x_...

The raw data for the first one shows the expected POST request:
POST http://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x_c=Kg6TwcxIBm_rkiTTUIPQ-uNYku02X8TCjrrLslo_-wY&x_d=z9brlOMkpnBbUEz1TYnT3BJM-4T0-sQBzslDZ6T42iI&x_t=1358318810&end=now HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: West Wind Internet Protocols 5.65
Host: longwoodlive.org
Content-Length: 229
Pragma: no-cache

{
"OrgDefinedId": "XX000TEST",
"FirstName": "Tom",
"MiddleName": "",
"LastName": "Foolery",
"ExternalEmail": "stein@aceware.com",
"UserName": "Tom.Foolery",
"RoleId": "78",
"IsActive": true,
"SendCreationEmail": false
}

But the response contains only a header:
HTTP/1.0 302 Found
Location: https://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x.....
Server: BigIP
Connection: Keep-Alive
Content-Length: 0

The second request shows the same URL, except https this time, but the method has changed to GET:

GET https://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x...
Connection: Keep-Alive
User-Agent: West Wind Internet Protocols 5.65
Cache-Control: no-cache
Pragma: no-cache
Host: longwoodlive.org

Response:
HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Length: 13
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-XSS-Protection: 0
X-Powered-By: ASP.NET
Date: Tue, 15 Jan 2013 04:46:16 GMT

Invalid token

I do get a response body but it's just the Invalid token notice.

What I need is for the HTTPS request to go out as a POST method. Why does it get switched to GET and how can I prevent that from happening?

And why am I seeing 2 entries for each call?

Any assistance would be appreciated...

--stein

Re: iPad

$
0
0
Re: iPad
Web Connection 5.0
Re: iPad
Jan. 18, 2013
12:11 am
3P100EVUBShow this entire thread in new window
Gratar Image based on email address
From:Luca
To:Rick Strahl
dear Rick,
as you know I am absolutely enthusiast about Web Connection and very happy to know we can develop also for iPad.
Are there differences or precautions we have to adopt to develop for iPad with Web Connection?
Despite a different video resolution, can we use Web Connection in the same way, or we have to modify something?
Thank you very much again


You can build Web applications that can be used in the iPad browser using HTML5 with Web Connection...

But otherwise it's not directly possible to build native applications for iOS devices with FoxPro.

+++ Rick ---



Dear Rick,
is there the possibility you develop any new tool (or implement any already existing one) to develop applications for iPad with VFP?
Thank you very much



West Wind Web Monitor

Naming conflict for Cancel-method

$
0
0
Naming conflict for Cancel-method
Web Service Proxy Generator
Naming conflict for Cancel-method
Jan. 18, 2013
12:15 am
3P100K98EShow this entire thread in new window
Gratar Image based on email address
From:Frits van den Munckhof
To:All
Hi Rick,

The web service I'm comsuming from VFP through your generated proxy contains a method Cancel. When calling this method in the same way as I succesfully called the other methods generated a "Methode Authoriser.Authoriser.Cancel is niet gevonden...". After checking for mistakes in the datatypes I created a breakpoint, to be able to inspect the oService object. oService DID contain "Cancel", but this was a property instead of a method (other methods showing up fine). Do you know where this property is added, since it is not standard attribute of the custom class that you use as your baseclass?

I checked if the Cancel-method was present in the proxy-prg. And it was:

************************************************************************ * Cancel ****************************************FUNCTIONCancel(CardType as String,Requestor as String,TransactionId as Int64) as CancelData

Do you have a workaround to be able to call the Cancel-method of the webservice? Or is this a naming conflict you cancel easily solve in the framework, since Cancel is a pretty obvious method-name for webservices?

TIA, Frits

BTW except for these little startup hickups, everything is working like a dream.

West Wind Web Monitor

Re: Issues with PageParser

$
0
0
Re: Issues with PageParser
Web Connection 5.0
Re: Issues with PageParser
Jan. 18, 2013
06:04 am
3P10D0XJDShow this entire thread in new window
Gratar Image based on email address
From:Geoff Bannoff
To:Geoff Bannoff
On a whim, I tried replacing the line in wwPageParser.ParseToFile

llResult = File2Var(lcOutputFile,lcResult)

with

strtofile(lcResult, lcOutputfile)

and the error persists.

.. Geoff



I've spent an evening with this problem, but I'm not getting very far.

I built a test program where I ask your page parser to parse 106 files, then compile the app. I've run it a couple of hundred times, and figured out a few things. The problem file is always the 84th file. (Every time it gets corrupted, I restore from a previous version, ready for the next run.)

Now, the first run of the test program has different results than subsequuent runs.

Quit, then start VFP. The first time through, all 106 files parse properly with no errors. But later in the test program the command "build app fpp from fpp" throws an error on the 84th file (in this case, it's called mpreverse_page.prg). The error looks like this:

Compiling c:\vfp\source\mpreverse_page.prgHeader = nullError in line 484: Statement is not in a procedure. form1 = nullError in line 485: Statement is not in a procedure. lblTitle = nullError in line 486: Statement is not in a procedure. ErrorDisplay = nullError in line 487: Statement is not in a procedure. txtAddress = nullError in line 488: Statement is not in a procedure. lnkGeocode = nullError in line 489: Statement is not in a procedure. txtLatitude = nullError in line 490: Statement is not in a procedure. txtLongitude = nullError in line 491: Statement is not in a procedure. btnGeocode = nullError in line 492: Statement is not in a procedure. lblGeoAddress = nullError in line 493: Statement is not in a procedure. txtQty = nullError in line 494: Statement is not in a procedure. ddlFile = nullError in line 495: Statement is not in a procedure. CTL0013 = nullError in line 496: Statement is not in a procedure. CTL0015 = nullError in line 497: Statement is not in a procedure. btnGo = nullError in line 498: Statement is not in a procedure. btnCancel = nullError in line 499: Statement is not in a procedure. grdNearby = nullError in line 500: Statement is not in a procedure. lblFoot = nullError in line 501: Statement is not in a procedure.HIDDEN CTL0021Error in line 502: Statement is not in a procedure. CTL0021 = nullError in line 503: Statement is not in a procedure.ENDDEFINEError in line 630: Statement is only valid within a class definition.

Running 'build app fpp from fpp' outside of the test program runs just fine.

Then, subsequent runs of my test program (parsing 106 files) fail on the same 84th file. Right after your parser runs, my code gets lost, and the file on the disk now starts with:

*# --- BEGIN GENERATED CODE BOUNDARY --- #* ******************************************************* *** Generated by WebPageParser.prg *** on: 01/17/13 11:08:29 PM *** *** Do not modify manually - class will be overwritten ******************************************************* DEFINECLASS mpreverse_page_WCSX AS mpreverse_pageId = [mpreverse_page]*** Control DefinitionsHIDDEN CTL0002 CTL0002 = nullHeader = null

Then... after the NEXT file (the 85th) is parsed, the first bit of the (already corrupted) 84th file gets lost, and the file on the disk looks like this:

Header = null form1 = null lblTitle = null ErrorDisplay = null txtAddress = null lnkGeocode = null txtLatitude = null txtLongitude = null btnGeocode = null lblGeoAddress = null txtQty = null ddlFile = null CTL0013 = null

I think this is a side effect, rather than the cause of the issue.

I wonder if there's an issue with file handles. Maybe VFP isn't releasing file handles from the WWUtils.File2Var routine, and is running out of them, so isn't able to read the file on the disk correctly? Or maybe it's something screwy with 32 bit Windows 7?

The basics: chkdsk doesn't report any problems; and all files compile correctly outside of the test scenario

Sorry that I can't figure this out further.

.. Geoff



Hi Geoff,

Thanks for taking the time to try and track this down... I don't have time to look at this right now and I think it'll be hard to reproduce with that many files in the first place.

If you say it's so consistent to fail on the xxTH execution could you step into the page parser code and see where it goes wrong? It would seem to me that the problem is that it's reading the file from disk into memory and then doing a string replace in that string. Does the file come back properly? Or does the string replace fail I wonder? I'm guessing the string replace fails, but it's really odd that no FoxPRo error would occur if there's a memory overflow/underflow...

+++ Rick ---



Alas, the problem still arises, but later. With sys(1104) fix, I get up to 82 files parsed without running into corruption. But the 83rd file now gets trashed.

I'll just have to keep the number of recent files below 82, I guess.

.. Geoff



Here's a fix.

After running the page parser, include
=sys(1104)
to purge things cached in memory.

Including sys(1104) after each web page is parsed allows all 73 recently updated files to be parsed without any file corruption.

.. Geoff


I found a problem with the web page parser if I'm updating a lot of files.

My standard "start" program parses any web pages that I have updated in the last 3 days. Yesterday I updated about 30 files, and another 40 today. When I parse all 70 files, the parser consistently mangles 47th one. Restore the 47th web page and generated file from a backup, and it no longer gets parsed (as it now has an older date), but the next time I run the parser on the remaining 69 files, the 47th file gets mangled. Restore that web page and generated file from the backup, and the new 47th file gets mangled.

If I parse a smaller number of files--say just all the ones from yesterday, or just all the ones from today, the code gets generated without any problems. So it's not something in my code--it's in the parser.

When a file gets mangled, all the stuff at the top of the file gets lost--the usual stub and all the procedures I wrote--are lost. Here is the beginning of a mangled file:

Header = null form1 = null lblTitle = null ErrorDisplay = null txtAddress = null lnkGeocode = null txtLatitude = null txtLongitude = null btnGeocode = null lblGeoAddress = null txtQty = null ddlFile = null CTL0013 = null CTL0015 = null btnGo = null btnCancel = null grdNearby = null lblFoot = nullHIDDEN CTL0021 CTL0021 = nullFUNCTION Initialize(loPage)LOCAL __lcHtmlDODEFAULT(loPage)THIS.Header = CREATEOBJECT("wwwebhead",THIS.Page,"Header")THIS.AddControl(THIS.Header)

There is nothing before this in the file. Everything has gotten overwritten.

A workaround is to count the number of files being parsed, and reset the parser, like this:

m.nFiles=ADIR(aFP,'C:\inetpub\wwwroot\fpp\*.fp') && list of all web filesFOR m.nCount =1 TO m.nFiles* check modification dateIF aFP[m.nCount,3]>DATE()-3 m.pcount = m.pcount + 1IF m.pcount> 30RELEASEPROCEDURE WebPageParserSETPROCEDURETO WebPageParser additive m.pCount = 0endif ? m.pcount,' parsing',aFP(m.nCount,1) oParser.ParseToFile('c:\inetpub\wwwroot\fpp\'+aFP(m.nCount,1))ENDIFendfor

Maybe it takes about 47 files to overflow a string somewhere in WebPageParser?

It's been awhile since the parser has mangled any of my files, and we have backup system in place to handle that eventuality. But it would be nice to get rid of this problem.

.. Geoff











HTML Help Builder

Re: iPad

$
0
0
Re: iPad
Web Connection 5.0
Re: iPad
Jan. 18, 2013
06:33 am
3P10E1RGWShow this entire thread in new window
Gratar Image based on email address
From:Jim M
To:Luca
I use Sencha ExtJS 4 and Sencha Touch to do apps for (apple and android and windows 8 phone ) phones or devices.. wconnect can pump out all the backend json data you need for these apps... Once you build these apps.. you can use a utility to covert them to native apps..

Jim


dear Rick,
as you know I am absolutely enthusiast about Web Connection and very happy to know we can develop also for iPad.
Are there differences or precautions we have to adopt to develop for iPad with Web Connection?
Despite a different video resolution, can we use Web Connection in the same way, or we have to modify something?
Thank you very much again


You can build Web applications that can be used in the iPad browser using HTML5 with Web Connection...

But otherwise it's not directly possible to build native applications for iOS devices with FoxPro.

+++ Rick ---



Dear Rick,
is there the possibility you develop any new tool (or implement any already existing one) to develop applications for iPad with VFP?
Thank you very much




HTML Help Builder

Re: iPad

$
0
0
Re: iPad
Web Connection 5.0
Re: iPad
Jan. 18, 2013
06:42 am
3P10EDIPPShow this entire thread in new window
Gratar Image based on email address
From:Luca
To:Jim M
Thank you very much for informations, Jim.
It seems I have to use more development tools with Web Connection :(



I use Sencha ExtJS 4 and Sencha Touch to do apps for (apple and android and windows 8 phone ) phones or devices.. wconnect can pump out all the backend json data you need for these apps... Once you build these apps.. you can use a utility to covert them to native apps..

Jim


dear Rick,
as you know I am absolutely enthusiast about Web Connection and very happy to know we can develop also for iPad.
Are there differences or precautions we have to adopt to develop for iPad with Web Connection?
Despite a different video resolution, can we use Web Connection in the same way, or we have to modify something?
Thank you very much again


You can build Web applications that can be used in the iPad browser using HTML5 with Web Connection...

But otherwise it's not directly possible to build native applications for iOS devices with FoxPro.

+++ Rick ---



Dear Rick,
is there the possibility you develop any new tool (or implement any already existing one) to develop applications for iPad with VFP?
Thank you very much





HTML Help Builder

Re: wwDotNetBridge: Unable to load Clr Instance.

$
0
0
Re: wwDotNetBridge: Unable to load Clr Instance.
Web Connection 5.0
Re: wwDotNetBridge: Unable to load Clr Instance.
Jan. 18, 2013
09:11 am
3P10JPMJVShow this entire thread in new window
Gratar Image based on email address
From:Stein Goering
To:Rick Strahl
I will see if I can get one of these customers to copy in an earlier version of wwipstuff.

We can check the .NET security and permission settings - but remember that in every one of these cases they were using the .NET mail module and loading .NET assemblies with no problem when running under previous Web Connect versions. None of those settings would have changed - all we did to upgrade them was to copy in new versions of the EXE and DLL files.

Were there any changes in the wwstmp coding between 5.64 and 5.65?

--stein



This all seems very weird especially in that is working both for you and me and many other clients.

One difference is that wpipstuff.dll has been compiled with visual studio 2012 - maybe there are some different dll dependencies - quickly checked tho and found that the output size is identical (as 2012 uses the 2010 compiler anyway).

What happens if you change wwipstuff.dll rather than wwdotnetbridge.dll?

The problem isn't in the .net dll I think, but in the wwipstuff loader code I think - that's what's actually failing.

It still sounds to me that there is some sort of security/drive mapping/net access that is triggering the .net security and prevents .net from loading.

+++ Rick ---


The wwDotNetBridge.dll we ended up running is ver 5.64 dated 9/27/12. Reflector shows:
Size: 112128 Bytes
Target Runtime: v2.0.50727

But the one from ver 5.65 dated 12/7/12 has the same target runtime.

I can say for sure that the following sequence of events occurred on at least 2 different systems:

1. An older version of our app was working properly - including calls to .NET assemblies
2. We updated our app to one built under WC 5.65 along with the 12/7 build of wwDotNetBridge
3. We started getting errors when running routines that invoked DNB. Most often Unable to load Clr instance but also OLE error code 0x80131014: Unknown COM status code
4. We downdated wwDotNetBridge to the 9/27 build.
5. We were able to run some of the same routines that had previously thrown errors.

However, the behavior has not been totally consistent as we have gotten occasional .NET related errors after going back to 9/27. This included a new one:
An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy

The above showed up for a short time - then went away without us doing anything. The method in question is now working OK.

Generally it seems like calls to assemblies such as web service proxies are working most of the time. The main problems have been with calls to the .NET mail module. We've had those work on occasion but generally they throw the Clr instance error. Our solution has been to revert to the classic mail mode; fortunately the clients in question don't need SSL/TLS support so we have that option.

Finally I should mention that we're running this same app with no issues on at least 3 in-house systems, using both the 12/7 and 9/27 DNB builds.

--stein



Stein,

That's really strange - there really should be nothing different.

Can you check your wwDotnetBridge.dll and open it with Reflector to check what .NET runtime version it's compiled in?

Another thing - there's a dependency on Newtonsoft.Json.dll - this shouldn't be required, but there is a new assembly reference compiled into the new wwDotnetBridge.dll - it works for me here without that, but maybe on .NET 2 it somehow tries to load that assembly?

Try copying that dll on the problem servers and see if the problem goes away?

+++ Rick ---


No, we require Server 2003 or higher.

We have found that the issues go away if we go back to the 9/27/12 release of wwDotNetBridge.dll.

--stein


Stein -

Are the customers having this problem running under Windows 2000?

- Mike McDonald
Software Design of Kentucky


Just noting that another customer is also reporting this error since upgrading to the WC 5.65 instance of our app.

There seems to be a consistent pattern of .NET interop issues since that release...


Since upgrading our app to WC 5.65, a couple of customers have reported errors in routines that use wwDotNetBridge. It's from the line this.load() in wwDotNetBridge::init

Unable to load wwDotNetBridge: Unable to load Clr Instance.

We've verified that they have the latest DNB DLL (dated 12/7/12) They both have .NET versions V2.0.50727 and V4.0.30319

Am fairly sure that in both cases the code in question was working before we upgraded.

--stein








Re: Install of Webconnect v 5.63 issues

$
0
0
Re: Install of Webconnect v 5.63 issues
Web Connection 5.0
Re: Install of Webconnect v 5.63 issues
Jan. 18, 2013
01:14 pm
3P10SDBRFShow this entire thread in new window
Gratar Image based on email address
From:Roy M
To:Rick Strahl
Thanks Rick ... That did it

Is IIS installed on this machine? Did you follow the IIS installation requirements here:

wcdocs:_22f0xkbmq.htm

You also need to run as an administrator - you should be prompted to elevate if you're not if you're running Setup.exe.

Also while you're at it, you might want to install 6.65 which is the latest version and includes some additional checks and notifications when configuring for Windows 7/8 including running without IIS altogether (using IISExpress). See documentation for more details.

+++ Rick ---


I am attempting to install WC 5.63 and am having problems.

VFP8 and VFP9 are on computer
Using webserver installation choice of iis 7/8 ISAPI

Starting the installation a get the following error message: LOOIS is not an ojbect

There is a wait window that shows up and states 'IISADMIN object are not found on this machine'

There is also issues with installation of Postscript ... unable to open moniker ... did'nt record the actual message ... but this was after the above message


Any ideas on what I need to do?

Thanks in advance

Roy



using sourcegrid using wwdotnetbridge in VFP with dbf as database

$
0
0
using sourcegrid using wwdotnetbridge in VFP with dbf as database
FoxPro Programming
using sourcegrid using wwdotnetbridge in VFP with dbf as database
Jan. 19, 2013
12:26 am
3P200XSWYShow this entire thread in new window
Gratar Image based on email address
From:Ramachandra
To:All
Hi:

I want to use sourcegrid(http://sourcegrid.codeplex.com/) using wwdotnetbridge in VFP. I want to use DBF as database. It would be great if someone could post a sample to explain how it is to be done. I want to input unicode data through the grid. Thanks in advance.

Regards,
Ramachandra

Re: Tracing an HTTP request

$
0
0
Re: Tracing an HTTP request
Web Connection 5.0
Re: Tracing an HTTP request
Jan. 19, 2013
01:44 am
3P203R0QPShow this entire thread in new window
Gratar Image based on email address
From:Rick Strahl
To:Stein Goering

Looks like the service is redirecting from http:// to https://. In the process the request becomes a GET.

Try calling the service with https:// to start and then you might get the results you're expecting.

+++ Rick ---



I added the postmode and contenttype settings - still getting the same 403 response from the server. And the techs on their side still claim it's because I'm sending a GET request instead of a POST.

And I still don't understand the Fiddler results - why is each request listed twice?

And why does the json post show up as a GET after initially being flagged as a POST?


Stein,

To post a raw buffer just use:

loHttp.nHttpPostMode = 4 && this is not necessary I think loHttp.cContentType = "application/json" loHttp.AddPostKey(lcJson)


+++ Rick ---


I'm trying to get my program to interact with a REST service. A typical request would look like this:

http://longwoodlive.org/d2l/api/lp/1.0/organization/info? - followed by several querystring parameters that are used to validate the request.

If I submit the above using wwHTTP::httpGet I get the desired response. However, for this one, which creates a user account, I need to Post a JSON string:

http://longwoodlive.org/d2l/api/lp/1.0/users/

I use AddPostKey(.F.,"<JSON text..>") to load the string, then execute the call with httpGet. My understanding is this should generate a POST request, but I am getting an Invalid Token message back from the service. Their techs tell me this may be caused by an invalid HTTP method, i.e. a GET instead of a POST. They also told me I should use SSL when making these calls, so I set lSecureLink on.

I then set up Fiddler to try and track this. I enabled the self-generated certificate so I could track HTTPS sessions. It looks like each of my hits generates 2 Fiddler entries, one without SSL and one with:

302 HTTP longwoodlive.org /d2l/api/lp/1.0/users/?&x_...
403 HTTPS longwoodlive.org /d2l/api/lp/1.0/users/?&x_...

The raw data for the first one shows the expected POST request:
POST http://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x_c=Kg6TwcxIBm_rkiTTUIPQ-uNYku02X8TCjrrLslo_-wY&x_d=z9brlOMkpnBbUEz1TYnT3BJM-4T0-sQBzslDZ6T42iI&x_t=1358318810&end=now HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: West Wind Internet Protocols 5.65
Host: longwoodlive.org
Content-Length: 229
Pragma: no-cache

{
"OrgDefinedId": "XX000TEST",
"FirstName": "Tom",
"MiddleName": "",
"LastName": "Foolery",
"ExternalEmail": "stein@aceware.com",
"UserName": "Tom.Foolery",
"RoleId": "78",
"IsActive": true,
"SendCreationEmail": false
}

But the response contains only a header:
HTTP/1.0 302 Found
Location: https://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x.....
Server: BigIP
Connection: Keep-Alive
Content-Length: 0

The second request shows the same URL, except https this time, but the method has changed to GET:

GET https://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x...
Connection: Keep-Alive
User-Agent: West Wind Internet Protocols 5.65
Cache-Control: no-cache
Pragma: no-cache
Host: longwoodlive.org

Response:
HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Length: 13
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-XSS-Protection: 0
X-Powered-By: ASP.NET
Date: Tue, 15 Jan 2013 04:46:16 GMT

Invalid token

I do get a response body but it's just the Invalid token notice.

What I need is for the HTTPS request to go out as a POST method. Why does it get switched to GET and how can I prevent that from happening?

And why am I seeing 2 entries for each call?

Any assistance would be appreciated...

--stein







Rick Strahl
West Wind Technologies


from Geneva, Switzerland

Making waves on the Web

Re: Unexplained hits when using Firefox

$
0
0
Re: Unexplained hits when using Firefox
Web Connection 5.0
Re: Unexplained hits when using Firefox
Jan. 19, 2013
01:44 am
3P203R0QGShow this entire thread in new window
Gratar Image based on email address
From:Rick Strahl
To:Russell Campbell

No, but you should hook up FireBug or Fiddler to see what is actually being sent.

Is there maybe some JavaScript code that's executing on menu item activation/deactivation? Still - I would expect that to fire in all browsers. IAC, if you hook up firebug you should be able to see the http requests being initiated and potentially you can set a break point in the menu's code to see where the remote calls activate from.

+++ Rick ---



I noticed an odd problem today in Firefox that doesn't happen in IE. When I click on the menu and just pull the cursor across the menu items, it sends a hit back to my WWWC app. This is all when running locally, with the WWWC app in File mode, so I can see the hits happening each time I move across a menu item. The menu is a JavaScript menu - standard dropdowns and cascading dropdowns - and just moving the mouse across the choices should not generate any hit to the server. It doesn't in IE, but it does in Chrome. Really kind of odd. Anybody seen this behavior before?



Rick Strahl
West Wind Technologies


from Geneva, Switzerland

Making waves on the Web

Re: Naming conflict for Cancel-method

$
0
0
Re: Naming conflict for Cancel-method
Web Service Proxy Generator
Re: Naming conflict for Cancel-method
Jan. 19, 2013
01:44 am
3P203R0Q7Show this entire thread in new window
Gratar Image based on email address
From:Rick Strahl
To:Frits van den Munckhof
Hi Fritz,

That's a VFP bug - there are certain reserved words that don't work as method and property names. For example, you can't have a property called Class in a VFP object either because the base class has that (even on SCATTER NAME objects which don'thave this property).

So there's an easy fix: Just rename the Proxy generated method in the PRG file. Make it _Cancel or Abort or something like that - anything to change the name.

+++ Rick ---



Hi Rick,

The web service I'm comsuming from VFP through your generated proxy contains a method Cancel. When calling this method in the same way as I succesfully called the other methods generated a "Methode Authoriser.Authoriser.Cancel is niet gevonden...". After checking for mistakes in the datatypes I created a breakpoint, to be able to inspect the oService object. oService DID contain "Cancel", but this was a property instead of a method (other methods showing up fine). Do you know where this property is added, since it is not standard attribute of the custom class that you use as your baseclass?

I checked if the Cancel-method was present in the proxy-prg. And it was:

************************************************************************ * Cancel ****************************************FUNCTIONCancel(CardType as String,Requestor as String,TransactionId as Int64) as CancelData

Do you have a workaround to be able to call the Cancel-method of the webservice? Or is this a naming conflict you cancel easily solve in the framework, since Cancel is a pretty obvious method-name for webservices?

TIA, Frits

BTW except for these little startup hickups, everything is working like a dream.



Rick Strahl
West Wind Technologies


from Geneva, Switzerland

Making waves on the Web


Re: wwDotNetBridge: Unable to load Clr Instance.

$
0
0
Re: wwDotNetBridge: Unable to load Clr Instance.
Web Connection 5.0
Re: wwDotNetBridge: Unable to load Clr Instance.
Jan. 19, 2013
02:05 am
3P204HEEXShow this entire thread in new window
Gratar Image based on email address
From:Rick Strahl
To:Stein Goering

I'm not saying that there isn't a problem, but I'd like to try and pin this down whatever it is...

The problem that I have is that it's working for me here in all scenarios I'm trying with and it appears that it's also working for most of your installs. There's gotta be something that's triggering the different behavior - from all that I can think of it sounds like a network share issue where one or more of the depencies are not on the local machine.

Have you tried putting in yourapp.exe.config file with the network override options in it (only works if .NET 3.5 and forward is installed on the machine though).

wcdocs:_36e0qlogr.htm

Nothing really has changed in wwDotnetBridge or wwSmtp that should have any effect. The only changes have been in wwIPStuff - mainly that I now use Visual Studio 2012 to compile the project. But behind the scenes this uses the same compiler and C runtimes as VS2010 did so I'm not sure this should really make a difference and this compiler has been used since aroun 5.60.

What does:

do wwDotNetBridgeLOCAL loBridge as wwDotNetBridge loBridge = CreateObject("wwDotNetBridge") ? loBridge.GetDotnetversion()

return on these machines, or do you even get that far? Could it be that you're loading wwDotnetBridge with other versions? What version are you expecting to load? Maybe try using "V2" (or V4) explicitly at the beginning of your app to force the desired runtime into your application.



I will see if I can get one of these customers to copy in an earlier version of wwipstuff.

We can check the .NET security and permission settings - but remember that in every one of these cases they were using the .NET mail module and loading .NET assemblies with no problem when running under previous Web Connect versions. None of those settings would have changed - all we did to upgrade them was to copy in new versions of the EXE and DLL files.

Were there any changes in the wwstmp coding between 5.64 and 5.65?

--stein



This all seems very weird especially in that is working both for you and me and many other clients.

One difference is that wpipstuff.dll has been compiled with visual studio 2012 - maybe there are some different dll dependencies - quickly checked tho and found that the output size is identical (as 2012 uses the 2010 compiler anyway).

What happens if you change wwipstuff.dll rather than wwdotnetbridge.dll?

The problem isn't in the .net dll I think, but in the wwipstuff loader code I think - that's what's actually failing.

It still sounds to me that there is some sort of security/drive mapping/net access that is triggering the .net security and prevents .net from loading.

+++ Rick ---


The wwDotNetBridge.dll we ended up running is ver 5.64 dated 9/27/12. Reflector shows:
Size: 112128 Bytes
Target Runtime: v2.0.50727

But the one from ver 5.65 dated 12/7/12 has the same target runtime.

I can say for sure that the following sequence of events occurred on at least 2 different systems:

1. An older version of our app was working properly - including calls to .NET assemblies
2. We updated our app to one built under WC 5.65 along with the 12/7 build of wwDotNetBridge
3. We started getting errors when running routines that invoked DNB. Most often Unable to load Clr instance but also OLE error code 0x80131014: Unknown COM status code
4. We downdated wwDotNetBridge to the 9/27 build.
5. We were able to run some of the same routines that had previously thrown errors.

However, the behavior has not been totally consistent as we have gotten occasional .NET related errors after going back to 9/27. This included a new one:
An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy

The above showed up for a short time - then went away without us doing anything. The method in question is now working OK.

Generally it seems like calls to assemblies such as web service proxies are working most of the time. The main problems have been with calls to the .NET mail module. We've had those work on occasion but generally they throw the Clr instance error. Our solution has been to revert to the classic mail mode; fortunately the clients in question don't need SSL/TLS support so we have that option.

Finally I should mention that we're running this same app with no issues on at least 3 in-house systems, using both the 12/7 and 9/27 DNB builds.

--stein



Stein,

That's really strange - there really should be nothing different.

Can you check your wwDotnetBridge.dll and open it with Reflector to check what .NET runtime version it's compiled in?

Another thing - there's a dependency on Newtonsoft.Json.dll - this shouldn't be required, but there is a new assembly reference compiled into the new wwDotnetBridge.dll - it works for me here without that, but maybe on .NET 2 it somehow tries to load that assembly?

Try copying that dll on the problem servers and see if the problem goes away?

+++ Rick ---


No, we require Server 2003 or higher.

We have found that the issues go away if we go back to the 9/27/12 release of wwDotNetBridge.dll.

--stein


Stein -

Are the customers having this problem running under Windows 2000?

- Mike McDonald
Software Design of Kentucky


Just noting that another customer is also reporting this error since upgrading to the WC 5.65 instance of our app.

There seems to be a consistent pattern of .NET interop issues since that release...


Since upgrading our app to WC 5.65, a couple of customers have reported errors in routines that use wwDotNetBridge. It's from the line this.load() in wwDotNetBridge::init

Unable to load wwDotNetBridge: Unable to load Clr Instance.

We've verified that they have the latest DNB DLL (dated 12/7/12) They both have .NET versions V2.0.50727 and V4.0.30319

Am fairly sure that in both cases the code in question was working before we upgraded.

--stein











Rick Strahl
West Wind Technologies


from Geneva, Switzerland

Making waves on the Web

Re: using sourcegrid using wwdotnetbridge in VFP with dbf as database

$
0
0
Re: using sourcegrid using wwdotnetbridge in VFP with dbf as database
FoxPro Programming
Re: using sourcegrid using wwdotnetbridge in VFP with dbf as database
Jan. 19, 2013
02:26 am
3P2058WDFShow this entire thread in new window
Gratar Image based on email address
From:Rick Strahl
To:Ramachandra

wwDotnetBridge doesn't help with using .NET visual components. It's purely a programmatic mechanism to call .NET code - there's no support for visual control mapping/hosting. AFAIK, there's no really viable solution to make this work reliably.

+++ Rick ---



Hi:

I want to use sourcegrid(http://sourcegrid.codeplex.com/) using wwdotnetbridge in VFP. I want to use DBF as database. It would be great if someone could post a sample to explain how it is to be done. I want to input unicode data through the grid. Thanks in advance.

Regards,
Ramachandra



Rick Strahl
West Wind Technologies


from Geneva, Switzerland

Making waves on the Web

Re: Naming conflict for Cancel-method

$
0
0
Re: Naming conflict for Cancel-method
Web Service Proxy Generator
Re: Naming conflict for Cancel-method
Jan. 19, 2013
02:06 pm
3P20U82NSShow this entire thread in new window
Gratar Image based on email address
From:Frits van den Munckhof
To:Rick Strahl
Thanks (again!), Rick for your great support. This is indeed a simple solution for a VFP-problem I only knew from statements like "SELECT * FROM Order". I will try not to bother you too much with this type of questions.


Hi Fritz,

That's a VFP bug - there are certain reserved words that don't work as method and property names. For example, you can't have a property called Class in a VFP object either because the base class has that (even on SCATTER NAME objects which don'thave this property).

So there's an easy fix: Just rename the Proxy generated method in the PRG file. Make it _Cancel or Abort or something like that - anything to change the name.

+++ Rick ---



Hi Rick,

The web service I'm comsuming from VFP through your generated proxy contains a method Cancel. When calling this method in the same way as I succesfully called the other methods generated a "Methode Authoriser.Authoriser.Cancel is niet gevonden...". After checking for mistakes in the datatypes I created a breakpoint, to be able to inspect the oService object. oService DID contain "Cancel", but this was a property instead of a method (other methods showing up fine). Do you know where this property is added, since it is not standard attribute of the custom class that you use as your baseclass?

I checked if the Cancel-method was present in the proxy-prg. And it was:

************************************************************************ * Cancel ****************************************FUNCTIONCancel(CardType as String,Requestor as String,TransactionId as Int64) as CancelData

Do you have a workaround to be able to call the Cancel-method of the webservice? Or is this a naming conflict you cancel easily solve in the framework, since Cancel is a pretty obvious method-name for webservices?

TIA, Frits

BTW except for these little startup hickups, everything is working like a dream.



West Wind Web Monitor

Re: Tracing an HTTP request

$
0
0
Re: Tracing an HTTP request
Web Connection 5.0
Re: Tracing an HTTP request
Jan. 19, 2013
10:46 pm
3P21CU09NShow this entire thread in new window
Gratar Image based on email address
From:Stein Goering
To:Rick Strahl
"Try calling the service with https:// to start and then you might get the results you're expecting."

How do I do that? I thought I just needed to set oHTTP.lSecureLink to True before calling httpGet(). I have verified that's the case. What else do I have to do to force an https call?

--stein

Looks like the service is redirecting from http:// to https://. In the process the request becomes a GET.

Try calling the service with https:// to start and then you might get the results you're expecting.

+++ Rick ---



I added the postmode and contenttype settings - still getting the same 403 response from the server. And the techs on their side still claim it's because I'm sending a GET request instead of a POST.

And I still don't understand the Fiddler results - why is each request listed twice?

And why does the json post show up as a GET after initially being flagged as a POST?


Stein,

To post a raw buffer just use:

loHttp.nHttpPostMode = 4 && this is not necessary I think loHttp.cContentType = "application/json" loHttp.AddPostKey(lcJson)


+++ Rick ---


I'm trying to get my program to interact with a REST service. A typical request would look like this:

http://longwoodlive.org/d2l/api/lp/1.0/organization/info? - followed by several querystring parameters that are used to validate the request.

If I submit the above using wwHTTP::httpGet I get the desired response. However, for this one, which creates a user account, I need to Post a JSON string:

http://longwoodlive.org/d2l/api/lp/1.0/users/

I use AddPostKey(.F.,"<JSON text..>") to load the string, then execute the call with httpGet. My understanding is this should generate a POST request, but I am getting an Invalid Token message back from the service. Their techs tell me this may be caused by an invalid HTTP method, i.e. a GET instead of a POST. They also told me I should use SSL when making these calls, so I set lSecureLink on.

I then set up Fiddler to try and track this. I enabled the self-generated certificate so I could track HTTPS sessions. It looks like each of my hits generates 2 Fiddler entries, one without SSL and one with:

302 HTTP longwoodlive.org /d2l/api/lp/1.0/users/?&x_...
403 HTTPS longwoodlive.org /d2l/api/lp/1.0/users/?&x_...

The raw data for the first one shows the expected POST request:
POST http://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x_c=Kg6TwcxIBm_rkiTTUIPQ-uNYku02X8TCjrrLslo_-wY&x_d=z9brlOMkpnBbUEz1TYnT3BJM-4T0-sQBzslDZ6T42iI&x_t=1358318810&end=now HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: West Wind Internet Protocols 5.65
Host: longwoodlive.org
Content-Length: 229
Pragma: no-cache

{
"OrgDefinedId": "XX000TEST",
"FirstName": "Tom",
"MiddleName": "",
"LastName": "Foolery",
"ExternalEmail": "stein@aceware.com",
"UserName": "Tom.Foolery",
"RoleId": "78",
"IsActive": true,
"SendCreationEmail": false
}

But the response contains only a header:
HTTP/1.0 302 Found
Location: https://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x.....
Server: BigIP
Connection: Keep-Alive
Content-Length: 0

The second request shows the same URL, except https this time, but the method has changed to GET:

GET https://longwoodlive.org/d2l/api/lp/1.0/users/?&x_a=6EAimWV1Q56N_M0dU_ZNWA&x_b=yU_XnmtI4QrmC8Uj-IBvcX&x...
Connection: Keep-Alive
User-Agent: West Wind Internet Protocols 5.65
Cache-Control: no-cache
Pragma: no-cache
Host: longwoodlive.org

Response:
HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Length: 13
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-XSS-Protection: 0
X-Powered-By: ASP.NET
Date: Tue, 15 Jan 2013 04:46:16 GMT

Invalid token

I do get a response body but it's just the Invalid token notice.

What I need is for the HTTPS request to go out as a POST method. Why does it get switched to GET and how can I prevent that from happening?

And why am I seeing 2 entries for each call?

Any assistance would be appreciated...

--stein







HTML Help Builder

Re: wwDotNetBridge: Unable to load Clr Instance.

$
0
0
Re: wwDotNetBridge: Unable to load Clr Instance.
Web Connection 5.0
Re: wwDotNetBridge: Unable to load Clr Instance.
Jan. 19, 2013
11:08 pm
3P21DLO9MShow this entire thread in new window
Gratar Image based on email address
From:Stein Goering
To:Rick Strahl

I'm not saying that there isn't a problem, but I'd like to try and pin this down whatever it is...

The problem that I have is that it's working for me here in all scenarios I'm trying with and it appears that it's also working for most of your installs. There's gotta be something that's triggering the different behavior - from all that I can think of it sounds like a network share issue where one or more of the depencies are not on the local machine.


It's hard for me to see how this could be an issue - we always install our app and all its supporting files on a single box.

Have you tried putting in yourapp.exe.config file with the network override options in it (only works if .NET 3.5 and forward is installed on the machine though).

wcdocs:_36e0qlogr.htm

Nothing really has changed in wwDotnetBridge or wwSmtp that should have any effect. The only changes have been in wwIPStuff - mainly that I now use Visual Studio 2012 to compile the project. But behind the scenes this uses the same compiler and C runtimes as VS2010 did so I'm not sure this should really make a difference and this compiler has been used since aroun 5.60.

What does:

do wwDotNetBridgeLOCAL loBridge as wwDotNetBridge loBridge = CreateObject("wwDotNetBridge") ? loBridge.GetDotnetversion()

return on these machines, or do you even get that far? Could it be that you're loading wwDotnetBridge with other versions? What version are you expecting to load? Maybe try using "V2" (or V4) explicitly at the beginning of your app to force the desired runtime into your application.

I think it does create the oBridge object - at least in some scenarios. I'll try adding code to log the above.

I have no expectation of a version to be loaded - my code always calls wwDotNetBridge without the V parameter. Maybe I can add a startup parameter to force using V2 or V4 and see what happens.

--stein

HTML Help Builder
Viewing all 10393 articles
Browse latest View live