PDS on different projectserver databases

W

Wesley

Hi guys. I don't know if anyone can help me, but here goes.

I am writing a dll so that I can update projects in MS Project 2003, using
the PDS web service. I am trying to write functionality so that I can update
different projectserver databases that is on the same server. In the help it
says that you must make a copy of the .wsdl and .wsml files and give it a
new name and put in to the same directory as the originals. Then you must
edit the wsdl file and change the url of the service to the filename. eg:
http://ServerName/Sales/pdsSales.WSDL instead of
http://ServerName/ProjectServer/PDS.WSDL. However, when I run the program, I
keep getting a HTTP 405: Method not allowed error. I have searched on the
web, but the two guys that has the same problem never got a answer back.

If anyone can help me it would be greatly appreciated.

Cheers
Wesley
 
J

Jim Corbin [MSFT]

Here are some things to check. It helps if you have the Sample database
installed according to the default directions, so that you can test what you
do.

1. Can you add a Web Reference in your Visual Studio project, for example: add
http://yourServerName/Sample/pdsSample.WSDL as MyWebReference -- and does
the VS Add Web Reference wizard show the SoapXMLRequest() method in the "PDS"
Description ?

2. Was MyWebReference installed with the namespace you want to use? For
example, if you double-click MyWebReference, you should see in the Object
Browser the namespace tree, including the namespace such as:
MyAppNamespace.MyWebReference, with the object PDS and four members
including the constructor PDS() and the method SoapXMLRequest(string,string).

3. In the Solution Explorer, click the Web Reference you just added, then
click the Show All Files icon. If you open the PDS.wsdl file, you should see
the following line near the bottom (copied from your pdsSample.wsdl file):
<soap:address location="http://yourServerName/Sample/PDSsample.WSDL" />

4. Expand the Reference.map, and open Reference.cs. The namespace definition
should be:
namespace MyAppNamespace.MyWebReference
and the constructor should be:
public PDS() {
this.Url = "http://yourServerName/Sample/PDSsample.WSDL";
}

5. Your project references should include System.Web.Services. Inone of your
code files within a class in the MyAppNamespace, can you instantiate a PDS
object, and do you get the Intellisense completion, e.g.:
private static MyWebReference.PDS webSvc2 = new
MyAppNamespace.MyWebReference.PDS();

Most of the problems I've had in using a PDS Web Reference came from having
it in a different namespace. If necessary, you can fully qualify the
namespace when you instantiate the PDS object, e.g.,
private static MyOtherNamespace.MyWebReference.PDS webSvc2 = new
MyOtherNamespace.MyWebReference.PDS();

Another simple check is to see if you can access the pdsSample.wsdl using IE
from your development machine. Maybe the file permissions are not correct.

--Jim
 
M

Mandarb

Hi Jim

All those things check out. I also checked the permisions on the file
and they are both the same. Do you maybe have any other suggestions?

Thanks


-
Mandar
 
J

Jim Corbin [MSFT]

The PDS Web Service uses the SOAP Toolkit 3.0. Do you have that installed on
Project Server?
http://www.microsoft.com/downloads/...DD-CEEC-4088-9753-86F052EC8450&displaylang=en

If you check the Windows event log, the Application node includes
information and error events that can help analyze problems with PDS
extensions.
For example, the following error –

Component: PDS
Line: 0
Error Number: 0x2330
Description: <Description><![CDATA[CMain.HandleUnknownRequest; 429 :
ActiveX component can't create object]]></Description>

-- shows the PDS extension is not available, perhaps not registered
correctly. Things to check:

1. Are the PDS extensions registered in order? They should be sequential,
with no missing numbers, e.g. PDSExtensionEx1, PDSExtensionEx2, …

2. Are the PDS extensions registered to the correct Project Server virtual
directory? E.g.,
HKLM\SOFTWARE\Microsoft\Office\11.0\MS Project\WebClient Server\ProjectServer
or
HKLM\SOFTWARE\Microsoft\Office\11.0\MS Project\WebClient Server\Sample

3. If your PDS extension is registered as PDSExtensionEx2, is
PDSExtensionEx1 working correctly? If PDSExtensionEx1 doesn’t handle unknown
requests properly, the PDS might not get to PDSExtensionEx2

Have you tried using the Sample database (on a non-production server), and
your PDS extension registered for the Sample virtual directory?

If you are using an ASP.NET app to access the PDS Web Service, check in IIS
again for the Directory Security - Authentication Methods on the virtual
directory in question. *Only* Integrated Windows Authentication should be
checked.

--Jim
 
J

Jim Corbin [MSFT]

Try installing the Sample database that comes with Project Server, use
default settings as explained in the Installation Guide, and then register
your PDS extension for Sample. Make sure you register the PDS extension in
HKLM\Software\Microsoft\Office\11.0\MSP Project\WebClient Server\Sample.

If that works, find what is different between the Sample installation and
your other installation. E.g., permissions, application pool, and so forth.
 
J

Jim Corbin [MSFT]

Try installing the Sample db that comes with Project Server, using the
default settings as described in the Installation Guide. Then register your
PDS extension in
HKLM\Software\Microsoft\Office\11.0\MS Project\WebClient Server\Sample.

If the extension works with the Sample db, find out what is different with
your other db. E.g., permissions, application pool, and so forth.
 
J

Jim Corbin [MSFT]

Another thought. In IIS, if you have both a sub-virtual directory in your
Default Web Site and a regular directory with the same name, that will cause
a conflict. Don't delete the regular directory, because that actually does
delete it. Rather, create a virtual directory with a different name -- or if
the regular directory points to the same files, turn it into a virtual
directory (make it an application) and then delete the first virtual
directory.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top